您好我有一个html表单,我通过按钮上的点击事件提交。该事件触发$(“#myform”)。submit(); 问题是表单上有一个复选框,在发布的params下面的firebug中显示“mycheckbox1 on”而不是预期的“mycheckbox1 true”。
通过ajax提交表单时我可以设置发布的数据没问题,但是这个表单有一个文件上传,需要其中一个黑客才能使它工作。我正在使用的那个最终称为提交。但也许那是不相关的。
在数据到达服务器的任何情况下,服务器都不会将值“on”视为bool,因此忽略它。
非常感谢任何见解。
答案 0 :(得分:21)
选中的复选框只会发送其value
属性。未选中的复选框不会在表单中发送自己。
因此,如果发布了复选框的name
属性,则可以通过简单的测试来确定是否已选中。
答案 1 :(得分:6)
是的,当没有设置值时,不同的浏览器可能会以不同的方式处理复选框。
您可以将复选框的value属性显式设置为“true”,因为当选中复选框并将其发送给服务器时,服务器会理解它。正如亚历克斯在他的回答中暗示的那样,如果未选中该复选框,则不会发送该复选框,因此,我认为在这种情况下服务器默认为false。
答案 2 :(得分:1)