我有一个使用Project Awesome(http://awesome.codeplex.com/)的MVC 3应用程序,但是我在复选框上遇到了一个奇怪的行为。
当我提交包含此元素的表单时,它的post值为“on”,而不是预期的“true”(当元素被选中时)。
有人知道这是为什么吗?我假设可能有一些javascript的地方搞乱了表单数据,但想检查是否有一些HTML我错过了。
谢谢
我有一个使用Project Awesome(http://awesome.codeplex.com/)的MVC 3应用程序,但是我在复选框上遇到了一个奇怪的行为。
当我提交包含此元素的表单时,它的post值为“on”,而不是预期的“true”(当元素被选中时)。
有人知道这是为什么吗?我假设可能有一些javascript的地方搞乱了表单数据,但想检查是否有一些HTML我错过了。
谢谢
9条答案
按热度按时间bbmckpt71#
将
value
属性的复选框设置为true
,您将在您的帖子值中获得true
。raogr8fs2#
我想这是浏览器特有的,当值未定义时发送什么。你需要在你的单选/复选框上定义
value
属性,以确保什么会被传递回你。我建议使用value="1"
0ejtzxu13#
通过默认设置
data-val="true" and value="true"
...如果选中复选框,则返回truen1bvdmb64#
选中复选框是否选中,如果选中,则将隐藏字段设置为真,否则将隐藏字段设置为假。
hpcdzsge5#
当然,您应该检查它是否被设置-它发送的值是无关紧要的,如果没有检查,那么当您POST时什么也不会发送。
3ks5zfa06#
没有工作!我结束了在一个hacky的方式后,看到序列化的形式对象之前,张贴到控制器/行动。它不安全的情况下,如果任何人将有任何文本框内可能包含和。在我的情况下,我有一个复选框数组,所以我做了这个黑客后,我非常肯定,我不会有问题。
希望这对那些“某人”有帮助。黑客快乐。
oug3syen7#
使用jQuery进行跨浏览器决策,无论如何它都会返回 true 或 false。
如果您的复选框具有id check-box-id。对于您的当前版本,请使用 the next(按类名选择):
mqkwyuun8#
使用jQuery
如果复选框被选中=true否则被选中=false
58wvjzkj9#
在HTML中,添加输入类型=“hidden”上方复选框:
然后,添加如下脚本:
例如,在jQuery中执行
$('#your-form').serialize()
时,如果选中active: true
或取消选中active: false
,则会获得复选框的值