我正在尝试将选中的值从复选框列表传递给jquery函数,因此我可以使用所选的值。代码下方不起作用
我希望能够使用复选框功能
之外的值因此,例如,如果我在该函数外面有另一个按钮,它应该能够读取存储在数组中的内容 - 下面的代码由于某种原因不起作用,任何帮助都将不胜感激
jquery
<script>
$(document).ready(function(){
var vals = []
$('input:checkbox[name="check[]"]').each(function() {
if (this.checked) {
vals.push(this.value);
}
});
alert(vals[0]);
});
</script>
HTML代码
<form>
<input value="BOOZE" type="checkbox" name="check[]" >PUB, MATES, <br>
<input value="TV" type="checkbox" name="check[]">BRIBING THE KIDS TO GO BED<br>
<input value="BOOZE" type="checkbox" name="check[]">RAVING TILL THE EARLY HOURS<br>
<input value="PETS" type="checkbox" name="check[]">PLAYING GRAND THEFT AUTO <br>
<input value="GEEK" type="checkbox" name="check[]">TWEETING ABOUT SOMETHING <br>
<input value="SPORT" type="checkbox" name="check[]">GYM<br>
<input value="XMAS" type="checkbox" name="check[]">SINGING CHRISTMAS SONGS<br>
<input type="checkbox" class="chkNumber" name="check[]">SHARING A DELIGHTFUL BOTTLE
</form>
答案 0 :(得分:5)
您需要有一个更改处理程序,您需要过滤选中的复选框元素
var vals = [];
$(document).ready(function () {
var $checkes = $('input:checkbox[name="check[]"]').change(function () {
vals = $checkes.filter(':checked').map(function () {
return this.value;
}).get();
alert(JSON.stringify(vals));
});
});
演示:Fiddle
答案 1 :(得分:3)
您可以使用.map()
方法执行此操作,例如:
var vals = $('input:checkbox[name="check[]"]:checked').map(function () {
return this.value;
}).get();
alert(vals[0]);
答案 2 :(得分:2)
你的代码是正确的只是把
var vals = [];
以外的
$(document).ready();
喜欢
<script>
var vals = [];
$(document).ready(function(){
$('input:checkbox[name="check[]"]').each(function() {
if (this.checked) {
vals.push(this.value);
}
});
alert(vals[0]);
});
</script>