表单提交复选框将值设置为“on”而不是“true”

时间:2012-02-07 23:57:47

标签: jquery checkbox submit boolean

您好我有一个html表单,我通过按钮上的点击事件提交。该事件触发$(“#myform”)。submit(); 问题是表单上有一个复选框,在发布的params下面的firebug中显示“mycheckbox1 on”而不是预期的“mycheckbox1 true”。

通过ajax提交表单时我可以设置发布的数据没问题,但是这个表单有一个文件上传,需要其中一个黑客才能使它工作。我正在使用的那个最终称为提交。但也许那是不相关的。

在数据到达服务器的任何情况下,服务器都不会将值“on”视为bool,因此忽略它。

非常感谢任何见解。

3 个答案:

答案 0 :(得分:21)

选中的复选框只会发送其value属性。未选中的复选框不会在表单中发送自己。

因此,如果发布了复选框的name属性,则可以通过简单的测试来确定是否已选中。

答案 1 :(得分:6)

是的,当没有设置值时,不同的浏览器可能会以不同的方式处理复选框。

您可以将复选框的value属性显式设置为“true”,因为当选中复选框并将其发送给服务器时,服务器会理解它。正如亚历克斯在他的回答中暗示的那样,如果未选中该复选框,则不会发送该复选框,因此,我认为在这种情况下服务器默认为false。

答案 2 :(得分:1)

尝试使用以下格式选择或发送checked值:

$("input:checked").val()

http://jsfiddle.net/YxZRS/