在form submit checkbox sets value to "on" rather than "true"中,我解释了在提交表单后我的复选框值是如何“开启”而不是真实。
建议是我需要设置value属性才能返回true。因此,我将页面上的复选框上的值设置为true或false,具体取决于它是新项还是数据库中的值。但是,当我单击复选框时,firebug显示该值不会更改。那怎么能起作用呢?
更新一些细节
好的,情况当然不像上面解释的那么简单。发布表单时,我使用jquery.form。它的作用是查看所有输入获取值将它们放入对象中,然后在ajax调用中将其发布到服务器。
但是,当你的表单上有文件上传时,jquery.form会做什么,它通过创建一个iframe来处理文件上传并做一些魔术(这是处理fileupload所必需的)然后它调用$(form) 。提交();
正是在这种情况下,我不通过ajax提交,而是通过$ .submit(),我获得序列化值“on”而不是true。我查看了jquery.submit的代码,我真的没看到它在做什么。 更新经过进一步考虑,我猜它正在做的只是触发表单提交类型提交按钮的方式。
答案 0 :(得分:0)
这是Stack Overflow post,具体谈到这个问题。似乎jQuery使用''如果复选框值未设置为' true'或者' false'。