チェックボックスの値を取得しますか?


177

だから私はこのようなコードを持っています:

<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">

現在チェックされているチェックボックスの値を取得するには、JavaScriptが必要です。

編集:追加するには、チェックボックスが1つだけあります。


1
JavaScriptコードまたはjQueryが必要ですか?
Andrey Vorobyev 2012

6
ラジオボタンを使用しないのはなぜですか?
PraveenVenu

私はサイトのプラグインを書いているため
マシュー '必須'ブライアント

チェックボックスが1つだけ必要な場合は、ラジオボタンを使用しないでください。これは、このジョブにより適したUIコンポーネントです。
Tal Yaron、2018

@TalYaronラジオボタンの選択を解除できますか?私はjsコードなしではないと思います。おそらく、OPはボックスの選択を簡単に解除したいと考えています。
R3tep

回答:


256

最新のブラウザの場合

var checkedValue = document.querySelector('.messageCheckbox:checked').value;

を使用してjQuery

var checkedValue = $('.messageCheckbox:checked').val();

なしの純粋なJavaScriptjQuery

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValue = inputElements[i].value;
           break;
      }
}

9
@Mageek複数の要素に同じIDを追加することは悪い習慣です。
エンジニア、

@エンジニアいいえ、チェックボックスごとに異なるIDを入力するだけです。
Mageek

3
@Engineerは「バイトをdocument.getElementById("foo").value();保存する」ためgetElementByIdですgetElementsByTagName。ループを作成するよりも確実に高速であるため、「書き込みを保存するだけ」と「計算を保存する」必要があります。
Mageek

9
jQuery .is(":checked")は、.val()定義されている場合は属性値を返すため、正しい方法です。定義されていない場合でも、ブール値ではなく "on"を返します。jsfiddle.net/d5f7wnzu
Peter

1
document.querySelector('.messageCheckbox:checked').valueチェックボックスがチェックされていない場合はTypeErrorを生成します
Meisner

262

上記のどれも私にとってはうまくいきませんでしたが、これを単に使用してください:

document.querySelector('.messageCheckbox').checked;

ハッピーコーディング。


私は同意します。あなたは私の考えを確認しました。var chk1 = document.getElementById( 'messageCheckbox'); そのように私は「CHK1」変数のプロパティを参照することができますなどの確認、有効、スタイル、
JustJohn

4
どこで手に入れたのid?説明していただけますか?class入力で実際に使用された質問をした人。あなたがどこから得たのか理解できるように完全なコードを提供できればよいでしょうid
devfaysal

3
これは、OPが提供するサンプルコードでは機能しません...簡単な修正で正しくなる可能性はありますが、質問に答えずに多くの賛成票が得られた理由を知りたいと思います。
Laurent S.

1
提案された回答を編集して、これが何をするか、それがOPにどのように対処するかを拡張できますか
Ro Yo Mi

2
@PradeepKumarPrabaharanおそらく私のような人(複数のアイテムにIDを使用しない)は、なぜ.valueが未定義の理由でそれらを与えているのか疑問に思います。

111

私はコードでこれを使用しています。これを試してください

var x=$("#checkbox").is(":checked");

チェックボックスがオンの場合はxtrue、それ以外の場合はfalseになります。


7
これは質問には答えませんが、チェックボックスがチェックされているかどうかを判断するために使用できます。まだ助けてくれたので+1。
Kevin Jurkowski、2014

5
質問には答えませんが、まさに私が探していたものです。
phn

#checkboxが変数である場合に便利myCheckboxです。
Optimae 2017

15

単純なJavaScriptで:

function test() {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        alert(i + (cboxes[i].checked?' checked ':' unchecked ') + cboxes[i].value);
    }
}
function selectOnlyOne(current_clicked) {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        cboxes[i].checked = (cboxes[i] == current);
    }
}

4

$(document).ready(function() {
  var ckbox = $("input[name='ips']");
  var chkId = '';
  $('input').on('click', function() {
    
    if (ckbox.is(':checked')) {
      $("input[name='ips']:checked").each ( function() {
   			chkId = $(this).val() + ",";
        chkId = chkId.slice(0, -1);
 	  });
       
       alert ( $(this).val() ); // return all values of checkboxes checked
       alert(chkId); // return value of checkbox checked
    }     
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" name="ips" value="12520">
<input type="checkbox" name="ips" value="12521">
<input type="checkbox" name="ips" value="12522">


4

これは直接質問に答えることはできませんが、将来の訪問者を助けるかもしれません。


変数を常にチェックボックスの現在の状態にしたい場合(その状態をチェックし続ける必要はありません)、onchangeその変数を設定するようにイベントを変更できます。

これはHTMLで行うことができます:

<input class='messageCheckbox' type='checkbox' onchange='some_var=this.checked;'>

またはJavaScriptを使用:

cb = document.getElementsByClassName('messageCheckbox')[0]
cb.addEventListener('change', function(){some_var = this.checked})

2

これを使って:

alert($(".messageCheckbox").is(":checked").val())

これは、チェックするチェックボックスがクラス「messageCheckbox」を持っていることを前提としています。そうでない場合、入力がチェックボックスタイプなどであるかどうかをチェックする必要があります。


2
<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="3" name="mailId[]">

<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="1" name="mailId[]">
function getValue(value){
    alert(value);
}

0

Semantic UI Reactを使用している場合、dataは2番目のパラメーターとしてonChangeイベントに渡されます。

したがってchecked、次のようにプロパティにアクセスできます。

<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />

0

上記のどれも、ボックスがチェックされていないときにコンソールにエラーをスローせずに機能しなかったため、代わりにこれらの行に沿って何かを行いました(onclickおよびチェックボックス関数はデモ目的でのみ使用されており、私のユースケースでは、より大きなフォーム送信機能):

function checkbox() {
  var checked = false;
  if (document.querySelector('#opt1:checked')) {
     checked = true;
  }
  document.getElementById('msg').innerText = checked;
}
<input type="checkbox" onclick="checkbox()" id="opt1"> <span id="msg">Click The Box</span>


-3

私のプロジェクトでは、通常、次のスニペットを使用します。

var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
                type[i] = $(this).val();
            });

そして、それはうまくいきます。宜しくお願いします。


それを行うには非常に非効率的な方法です。
AStopher 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.