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

Rai*_*aif 23 checkbox jquery boolean submit

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

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

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

任何见解将不胜感激.

ale*_*lex 22

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

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


Mel*_*igy 7

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

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


jk.*_*jk. 6

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

$("input:checked").val()
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/YxZRS/