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)
?
答案 0 :(得分:4)
您可以使用.map()
方法:
var check_box_values = $('#myForm [type="checkbox"]:checked').map(function () {
return this.value;
}).get();
$('#myForm [type="checkbox"]:checked')
选择#myForm
后代的元素,type
属性值为checkbox
,并进行检查。
.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函数。