chu*_*nce 32 javascript jquery
我有一个带有复选框的相当简单的表单,我注意到我的服务器端应用程序没有选中我的复选框值:
$.post('CreateForm', $('#new-form').serialize(), ...
Run Code Online (Sandbox Code Playgroud)
其他所有内容都正确发布,但我在Firebug中看到它会将复选框值序列化为"on"或"off"而不是"true"和"false",这是我得到的正常<form method="post" action="formpage">...这里发生了什么这是预期的行为吗?我的服务器端模型绑定器不会将"on"等同于"true",因此会丢弃该值.显然我可以改变模型绑定器,但是想确保我没有做错.
编辑:
这是我的标记:
<input type="checkbox" name="CheckboxValue" >
Run Code Online (Sandbox Code Playgroud)
jQuery版本1.4.4
在Firebug中,这是由此产生的帖子:
... other variables &CheckboxValue=on
Run Code Online (Sandbox Code Playgroud)
Roc*_*mat 63
问题是您的复选框没有value属性.当jQuery序列化表单时,它使用'on'作为默认值.
你应该给你的复选框一个值:
<input type="checkbox" name="CheckboxValue" value="true" />
Run Code Online (Sandbox Code Playgroud)
请参见此处的示例:http://jsfiddle.net/U6Sbw/1/
Tao*_*Tao 10
有点晚了,但万一有人偶然发现:如果你还希望输出错误值,这个jQuery插件提供了一个选项,可以始终忽略复选框的"值",而是将其序列化为"true"或"false":
http://tdanemar.wordpress.com/2010/08/24/jquery-serialize-method-and-checkboxes/
小智 7
这是我做的,似乎工作得很好.我使用js2form来执行sping mvc/jackson控制器.
有一个我用以下运行的功能:
$('input[type=checkbox]').unbind('click.checks').bind('click.checks', function(e){
$(this).val($(this).is(':checked'));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24293 次 |
| 最近记录: |