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

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

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

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

任何见解将不胜感激。

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

因此,如果发布复选框的name属性,则可以确定是否已选中它。

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

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

尝试使用以下表单选择或发送checked值:

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

http://jsfiddle.net/YxZRS/