jquery表单序列化空字符串

时间:2012-10-14 19:44:56

标签: jquery forms serialization

我有以下表格:

<form id="searchform_txtRepeatComplaint" name="searchform_txtRepeatComplaint">
   <input name="datasource" type="hidden" value="TDA">
   <input name="from" type="hidden" value="eci_data">
   <input name="where" type="hidden" value="">
   <input name="componentname" type="hidden" value="txtRepeatComplaint">
   <input name="staticstrings" type="hidden" value="">
   <input name="staticfields" type="hidden" value="">
   <input class="nostyle" name="returnfield" type="hidden" value="Complaintinformation_ID">
   <input class="nostyle" name="returnid" type="hidden" value="Complaintinformation_ID">
eCI ID:<input  class="nostyle" type="text" name="Complaintinformation_ID" id="Complaintinformation_ID" style="width:150px;"/> 
Complaint number: <input  class="nostyle" type="text" name="eci_number" id="eci_number" style="width:150px;"/>
</form>

这是一个更大的表单标签中的表单。 我还有以下JS代码:

var data_save = $("#searchform_txtRepeatComplaint").serializeArray();
alert(data_save);

警报显示为空。 (甚至不显示[对象],它只是一个空警报框)。 我做错了什么?

未来读者的解决方案: 我找到了如何解决这个错误。我将FORM更改为DIV并添加了输入选择器,如下所示:

var data_save = $("#searchform_txtRepeatComplaint input").serializeArray();

另外:文档状态serializeArray()不能用于表单中的表单(无论如何都是非法的HTML)

1 个答案:

答案 0 :(得分:2)

你错过了选择器中的#

var data_save = $("#searchform_txtRepeatComplaint").serializeArray();

而不是

var data_save = $("searchform_txtRepeatComplaint").serializeArray();

此外,要调试代码,您应该使用console.log()而不是alert()。检查对象/数组更有用。