3

チェックボックスの値を名前で取得する必要があります。次のコードがあります。

<input type="hidden" name="my_checkbox" value="0">
<input type="checkbox" name="my_checkbox" id="my_checkbox_id" value="1"  />

チェックボックスがチェックされていない場合、非表示の入力タイプの値(0)を取得するという考え方です。

これが私が試したものですが、うまくいきませんでした:

$('input[name=my_checkbox]').val();

ただし、これは非表示の入力とチェックボックスの両方の値を返しました。チェックボックスをオンにしたとき (1) の値を取得する方法、またはチェックを外したときに非表示の入力 (0) の値を取得する方法を教えてください。チェックボックスがオフの場合、非表示の入力の値を取得するように、これは名前で行う必要があると思います。チェックボックスがオフの場合、その値は取得されません。

4

5 に答える 5

5
<input type="hidden" name="my_checkbox" value="0">
<input type="checkbox" name="my_checkbox" id="my_checkbox_id" value="1"  />

これを試してみてください:

$( 'input[name="my_checkbox"]:checked' ).val();
于 2013-11-06T10:10:01.660 に答える
1

実際には、隠されたものは必要ありません。次のように言うだけです。必要なの
if checkbox is not checked set his value to '0'
はこれだけです。

$('input:checkbox').not(':checked').val(0);
于 2013-01-01T19:16:20.310 に答える
1

チェックボックスを見つけるだけ:visibleです:

$('input[name="my_checkbox"]:visible').change(function() {
  if ($('input[name="my_checkbox"]:visible').is(':checked')) {
    alert($('input[name="my_checkbox"]:visible').val());
  } else {
    alert($('input[name="my_checkbox"]:hidden').val());
  }
});

フィドルを試してみてください:http://jsfiddle.net/JgzGa/1/

于 2013-01-01T18:17:52.613 に答える
1

なぜあなたはこれをしないのですか:

if($("#my_checkbox_id").is(':checked')) {
    output = $("#my_checkbox_id").val();
} else {
    output = $('input[type=hidden]').val();
}
于 2013-01-01T18:10:31.277 に答える
0

それに新しい関数を追加できます:

$.fn.checkboxVal = function() {
    var checked = $(this).filter("[type=checkbox]:checked");
    if (checked.length)
        return checked.val();

    return $(this).filter("[type=hidden]").val();
};

次に、言うことが$("input[name=foo]").checkboxVal()でき、正しい値が得られます。

テストされていないため、バグの修正は読者の課題として残されています。

于 2013-01-01T18:08:10.340 に答える