提交多个复选框值

时间:2012-11-23 14:05:09

标签: javascript jquery html forms checkbox

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)

3 个答案:

答案 0 :(得分:4)

您可以使用.map()方法:

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

jsFiddle Demo

解释

  • $('#myForm [type="checkbox"]:checked')选择#myForm后代的元素,type属性值为checkbox,并进行检查。

    < / LI>
  • .map()方法迭代结果元素,以及函数中返回的值(将是元素的value,因为这里`这指的是实际DOM元素)被添加到集合中。

  • 最后,.get()用于将集合转换为简单的Javascript数组。

答案 1 :(得分: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);

答案 2 :(得分:0)

如果您想获取复选框的值,可以使用此代码。

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

此代码将在整个表单上创建一个循环,并检查复选框是否检查,然后在代码中调用func函数。