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



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

当通过ajax提交表单时,我可以设置发布的数据,这没有问题,但这个表单有一个文件上传,需要各种技巧之一才能使其工作。我使用的那个最终调用submit。但也许这与此无关。

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

如有任何见解,我们将不胜感激。

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

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

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

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

尝试选择或发送形式为的checked

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

http://jsfiddle.net/YxZRS/

最新更新