将复选框传递给隐藏的输入

时间:2019-01-15 10:52:22

标签: javascript jquery html

所以我有一个复选框,它是从其他页面上的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>

1 个答案:

答案 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>