如何使用unchecked复选框返回一个值与jQuery序列化?

jef*_*ind 7 html checkbox jquery serialization

我有一个带有一些复选框的HTML表单.我使用jQuery .serialize()函数使查询字符串提交到数据库.我遇到的问题是,当未选中复选框时,该.serialize()函数不会在查询字符串中注册它.

我的问题在这个jsfiddle中说明:http://jsfiddle.net/cTKhH/.

这是一个问题,因为我仍然需要将未经检查的复选框的值保存到数据库.现在,仅在选中复选框时才会保存信息.如果未选中,并且.serialize()提交了信息,则不会进行任何更改,因为没有提交信息.

有没有人知道如何使我的.serialize()函数在未选中时返回所有复选框的未选中值?

谢谢!!

**编辑**

更多信息,我现在知道为什么未提交未选中的复选框,因为它不是"成功"的表单控件,请参见此处:http://www.w3.org/TR/html401/interact/forms. html#successful-controls.

希望我仍然修改.serialize()函数以提交未经检查的值.

dkn*_*ack 2

描述

\n\n

jQuery.serialize()几乎与浏览器执行相同的操作,然后提交表单。\n未选中的复选框不包含在表单提交中。

\n\n

解决方法是使用select元素。

\n\n

查看我的示例和这个jsFiddle 演示

\n\n

样本

\n\n
<form>\n<select id="event_allDay" name="a">\n   <option value="0" selected>No</option>\n   <option value="1">Yes</option>\n</select>\n</form>\n<button id="b">submit</button>\xe2\x80\x8b\n\n\n$(\'#b\').click(function() {\n    alert($(\'form\').serialize());\n});\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑

\n\n

我不知道您是否使用以及使用什么服务器技术。但如果您使用一个,您也可以使用默认值来修复该问题。

\n