发布未选中的复选框

我有一大堆默认选中的复选框。 我的用户可能会取消选中一些复选框(如果有)并将其余的选中。 有什么办法可以获得未在表单文章中选中的复选框,而不是已选中的复选框?


为具有不同ID的复选框添加一个隐藏输入:

<input id='testName' type='checkbox' value='Yes' name='testName'>
<input id='testNameHidden' type='hidden' value='No' name='testName'>

在提交表单之前,根据检查的条件禁用隐藏的输入:

if(document.getElementById("testName").checked) {
    document.getElementById('testNameHidden').disabled = true;
}

到目前为止,我最喜欢的解决方案是将隐藏的输入与可能未检查的复选框同名。 我认为它的工作原理是,如果复选框没有被选中,隐藏的输入仍然会成功并发送到服务器,但是如果复选框被选中,它将覆盖隐藏的输入。 这样您就不必跟踪发布数据中的哪些值将来自复选框。

<form>
  <input type='hidden' value='0' name='selfdestruct'>
  <input type='checkbox' value='1' name='selfdestruct'>
</form>

我通过使用简单的(本地)javascript解决了它:

<input type="hidden" name="checkboxName" value="0"><input type="checkbox" onclick="this.previousSibling.value=1-this.previousSibling.value">

注意不要在这两个输入元素之间有任何空格或换行符!

你可以使用this.previousSibling.previousSibling来获得“上”元素。

使用PHP,您可以检查指定的隐藏字段为0(未设置)或1(设置)。

链接地址: http://www.djcxy.com/p/17575.html

上一篇: Post the checkboxes that are unchecked

下一篇: Line Dictionary to Single