2012-02-07 140 views
20

嗨我有一个html表单,我通过点击事件按钮提交。事件触发$(“#myform”)。submit(); 问题是,在窗体上有一个复选框,并在发布的参数下显示“mycheckbox1”,而不是预期的“mycheckbox1真”下的萤火虫。表单提交复选框将值设置为“on”而非“true”

当通过ajax提交表单我可以设置发布的数据没有问题,但此表单有一个文件上传需要各种黑客之一,使其工作。我正在使用的那个最终调用提交。但也许这不相关。

在任何情况下,当数据到达服务器时,服务器看不到值“on”作为布尔值,因此忽略它。

任何有识之士将不胜感激。

+2

不复选框有什么价值?如果它没有'value'属性,它只能报告'开'。 – 2012-02-08 00:00:28

+0

是的,我读过这个,但奇怪的是,当我看着一个与萤火虫复选框,我检查并取消选中它不显示一个值。也许我需要在复选框被创建时将该值设置为false,或者我需要一个全局onChange事件处理程序来手动设置值。 – Raif 2012-02-08 13:54:17

回答

17

选中的复选框只是发送其value属性。未经检查的复选框不会将自身发送到表单中。

因此,如果发布复选框的name属性,则可以确定是否进行了检查。

+0

不知道未经检查的复选框未在POST中发送......一直试图找出超过半小时的类似问题! +1 – 2014-10-22 06:26:57

6

是的,不同的浏览器可能会在未设置值时处理复选框。

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

+0

我在Play中遇到类似问题,直到我明确将“value =”true“'添加到我的复选框。 – Matthew 2016-04-25 13:42:57

相关问题