所以我有一个复选框,它是从其他页面上的php加载的,因为我无法获取它们的值,所以我写了一个jquery脚本,该脚本应该检查是否选中了复选框,如果这样,它将标记相应的隐藏输入值为1或0。 但是无论我做什么,似乎它只能在循环中工作1。
<script>
$(document).ready(function() {
var total = <?php echo $count; ?>;
for (i = 0; i < total; i++) {
$('input[type="checkbox"]').change(function(event) {
if($(this).is(":checked")){
$(".check_"+i).val(1);
console.log("added"+i);
}else{
$(".check_"+i).val(0);
console.log("removed"+i);
}
});
}
});
</script>
答案 0 :(得分:1)
好像您要多次注册复选框的更改事件处理程序,相反,您需要在多个i =隐藏的输入上放置1或0。
您无需在此处循环,只需为所有ID以check_
开头的复选框添加更改事件处理程序,并读取相同的ID即可创建输入隐藏类选择器。将值设置为“隐藏”。
请参见下面的代码-
<script>
$(document).ready(function() {
//bind change event for checkbox having id starts with "check_"
$(document).on('change','input[type="checkbox"][id^=check_]', function(event) {
var id = $(this).attr('id');// id of checkbox checked/unchecked
$("."+id).val($(this).is(':checked')?1:0); // put 1 or 0 to the matching hidden input
});
});
</script>