2

jquery:

(...)
$('#button_submit').click(function() 
{                           
func(check_box_values) 
});

html:

<form id="myForm">
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="1">opt1</label>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="2">opt2</label>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="3">opt3</label>
<input id='my_opt' type='hidden' name='my_opt[]' />
<input type="button" id="button_submit" value="go">
</form>

このチェックボックスの値をそこに渡して で使用するにはどうすればよいfunc(check_box_values)ですか?

4

3 に答える 3

4

.map()そのためにメソッドを使用できます:

var check_box_values = $('#myForm [type="checkbox"]:checked').map(function () {
    return this.value;
}).get();

jsFiddle デモ

説明

  • $('#myForm [type="checkbox"]:checked')#myFormの子孫であり、値が のtype属性を持ち、checkboxチェックされている要素を選択します。

  • メソッドは.map()結果要素を繰り返し処理し、関数で返される値 (valueここでは `this は実際の DOM 要素を参照するため、要素の になります) がコレクションに追加されます。

  • 最後に.get()、コレクションを単純な Javascript 配列に変換するために使用されます。

于 2012-11-23T14:07:30.243 に答える
0

チェックボックス要素だけでなく、すべてのチェックボックス要素が必要な場合は、これを試してください。これはjQueryを使用しません。

var formEl = document.getElementById('myForm'),
    inputs = formEl.getElementsByTagName('input'),
    numInputs = inputs.length,
    checkboxEls = [];

while(numInputs--) {
    if (inputs[numInputs].getAttribute('type') == 'checkbox') checkboxEls.push(inputs[numInputs]);
}

func(checkboxEls);
于 2012-11-23T14:09:48.077 に答える
0

チェックボックスの値を取得したい場合は、このコードを使用できます。

$("#button_submit").on("click",function(){
    $("#myForm input").each(function(){
         var Check = $('#chkSelect');
         if(Check.is(':checked') == true){
             func(Check.attr('value'));
         }
    });
});

このコードは、フォーム全体でループを作成し、チェック ボックスがチェックされているかどうかを確認してから、コード内で func 関数を呼び出します。

于 2012-11-23T14:35:59.630 に答える