javascript - 使用jQuery取消选中,但复选框仍被视为 'successful control'并提交

标签 javascript jquery forms

我发现(伴随着大量的痛苦)如果我们从以下开始:

<input type="checkbox" checked="checked" id="cb1" name="some-name" value="some-value"/>

然后在某些事件下使用 jQuery:

$('#cb1').prop('checked', false);

该复选框确实失去了它的复选标记,但是,当提交相应的表单时,该复选框仍然是表单数据的一部分,它是一个“成功的控件”。

使复选框“不成功”(并阻止其提交到服务器)的唯一方法是:

$('#cb1').removeAttr('checked');

有没有办法使用 jQuery(或 javascript)使复选框不“成功”?这样就不会提交到服务器。

谢谢。

最佳答案

该请求将发送所有数据,包括复选框,因此如果选中,您将收到该值,如果未选中,您将收到 null 或空。您需要在服务器端处理它。

   <input type="checkbox" name="cb" value="yeah">

   // server if checked
   $_POST['cb'] === yeah

   // server if not checked
   $_POST['cb'] === empty

所以你不需要这样的控制

   isset($_POST['cb'])

你需要这个

   !empty($_POST['cb'])

我认为这是 PHP,但在所有语言中都是相同的。

祝你好运

关于javascript - 使用jQuery取消选中,但复选框仍被视为 'successful control'并提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32611741/

相关文章:

javascript - 使用 jquery 加载一系列图像

javascript - Shift 字符串 左右循环

javascript - 使用 jQuery 进行动态样式控制

html - 使用外键链接保存 modelForms 时 Django 'ManagementForm data is missing or has been tampered with'

php - 将 "px"附加到文本输入值的末尾

javascript - 如何使正则表达式字符串不允许使用单引号,除非它前面有斜杠?

javascript - 在 React 中将 Blob 转换为 Cell 内的图像

jquery - 在移动/桌面模式之间切换时如何启用/禁用某些 css 属性?

jquery - 当 &lt;textarea&gt; 通过 ajax 响应更新时 ckeditor 消失

html - 将 FORM 数据安全地提交到单页应用程序?