发布已选中和未选中的复选框

tor*_*inx 3 php checkbox jquery webforms

我正在尝试在Web表单中创建一系列复选框,将"true"或"false"发布到下一个php页面,具体取决于它们是否已被选中.我决定对于每个复选框(value ="true"),我会有一个隐藏的复选框(值="false"),它总是相反的(当选中复选框时,隐藏复选框未选中等)我正在使用jQuery去做这个.

'td'元素的数量是未知的('td'可以使用按钮无限次克隆,以提交多个值).我将警报添加到jQuery以进行测试.

当我将jQuery代码和隐藏的复选框添加到我的源代码中时(我将其用于测试目的),代码将无法工作并且我网页上的所有其他jQuery都停止工作!

jQuery代码:

$(document).ready(function(){
    /***post all 'required' checkboxes instead of just checked ones***/
    $(".required").click(function(event){
        event.preventDefault();
        alert("test");
        nextIndex = this.index() + 1;
        alert(nextIndex);
        $(".required:eq(nextIndex)").attr("checked", !.required:eq(nextIndex).attr("checked"));
    });
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<td>
    <input type="checkbox" class="required" name="required[]" value="true">
    <input type="checkbox" class="required" name="required[]" value="false" style="display: none;" checked>
</td>
Run Code Online (Sandbox Code Playgroud)

dre*_*010 8

您不必隐藏其中一个复选框.这是一个应该达到你想要的解决方案:

<input type="hidden" name="required" value="false" />
<input type="checkbox" name="required" value="true" />
Run Code Online (Sandbox Code Playgroud)

如果未选中该复选框,则将使用该false值提交隐藏字段.如果选中该复选框,则true复选框中的false值将覆盖隐藏输入中的值.

只要您可以将每个复选框命名为略有不同,它就应该有效.

以下内容对于一组值也应该起作用:

<input type="hidden" name="required[0]" value="false" />
<input type="checkbox" name="required[0]" value="true" />

<input type="hidden" name="required[n]" value="false" />
<input type="checkbox" name="required[n]" value="true" />
Run Code Online (Sandbox Code Playgroud)

这样,您不需要任何客户端javascript来切换隐藏的复选框.

  • 今天偶然发现了这一点,不得不让你知道这是一个很棒的解决方案.它如此干净,易于实施!! 喜欢这样的交易学习技巧. (2认同)