选中框时复选框值不会更改
Posted
技术标签:
【中文标题】选中框时复选框值不会更改【英文标题】:checkbox value doesn't change when box is checked 【发布时间】:2012-03-01 00:18:57 【问题描述】:在form submit checkbox sets value to "on" rather than "true" 中,我解释了如何在提交表单后,我的复选框值被提交为“on”而不是 true。
建议是我需要设置 value 属性才能将其返回为 true。因此,我将页面上复选框上的值设置为 true 或 false,具体取决于它是新项目还是数据库中的值。但是,当我单击复选框时,萤火虫显示该值没有改变。那么这应该如何工作呢?
更新一些细节
好的,当然,情况并不像上面解释的那么简单。发布表单时,我使用 jquery.form。它的作用是查看所有输入,获取值并将它们放入一个对象中,然后在 ajax 调用中将其发布到服务器。
但是,当您的表单上有文件上传时,jquery.form 所做的是它通过创建 iframe 并做一些魔术来处理文件上传(这是处理 fileupload 所必需的),然后它调用 $(form) 。提交();
正是在这种情况下,我不是通过 ajax 而是通过 $.submit() 提交,我得到了“on”的序列化值而不是 true。我查看了 jquery.submit 的代码,但我并没有真正看到它在做什么。 更新经过进一步考虑,我猜它所做的只是触发表单提交,就像按钮类型为 submit 所做的那样。
【问题讨论】:
您能否发布代码,说明您如何选择该复选框以获得“on”值。我之前在使用 jQuery 时遇到过这种情况,可能会有所帮助。 【参考方案1】:这是一个Stack Overflow post,专门讨论这个问题。如果复选框值未设置为“true”或“false”,则 jQuery 似乎使用“on”。
【讨论】:
感谢您的回答,但是,我没有手动获取值,我在表单上调用提交。然后表单查看所有元素的值(我不太了解那部分。似乎很神奇,如果我可以利用它,我可以发送正确的值)并返回这些值的参数。如果我没有将复选框上的值 attr 设置为 true 或 false,它会返回“on”,然后服务器不会将其识别为 bool。以上是关于选中框时复选框值不会更改的主要内容,如果未能解决你的问题,请参考以下文章