首页 > 解决方案 > 选中的复选框不会覆盖具有相同名称的隐藏输入

问题描述

我有一个表格,其行可以动态生成。每行有两个文本输入和一个复选框。

还有一个与复选框同名的隐藏输入。

<tr>
    <td><input type="text" name="names[]" class="form-control" required="required"></td>
    <td><input type="number" name="rates[]" class="form-control" required="required"></td>
    <td><input class="simple" type="checkbox" name='disallow_flag[]' value='1'/><input type="hidden" name="disallow_flag[]" value="0"></td>
    <td></td>
</tr>

$("#add_row").click(function(e) 
{
    e.preventDefault();
    html    =
            '<tr><td><input class="form-control" name="names[]" type="text" required="required"></td>\n\
            <td><input class="form-control" name="rates[]" type="number" required="required"></td>\n\
            <td><input class="simple" type="checkbox" name="disallow_flag[]" value="1"/><input type="hidden" name="disallow_flag[]" value="0"></td>\n\
            <td><a href="#" class="item_remove"><i class="fa fa-trash-o"></i></a></td></tr>';
    $(".menu_update_table").append(html);
});

创建几行并选中几个复选框后,我得到以下输出:

'names' => array(3)
 "dfdf"
 "sdfds"
 "dsfds"
'rates' => array(3)
 "1"
 "2"
 "3"
'disallow_flag' => array(4)
 "0"
 "1"
 "0"
 "0"

注意 disallow_flag 数组有四个元素;因为我只检查了三个盒子中的一个。

预期输出:

'disallow_flag' => array(3)
 "0"
 "1"
 "0"

如果选中相应的复选框,如何覆盖隐藏的复选框值?

标签: phphtmlcheckbox

解决方案


推荐阅读