serializeArray()给出空数组

我正在尝试使用.seralizeArray()来获取表单输入值。

输入字段包含具有各自相应价格的项目列表; 我想保存每个值对应其对应的密钥对,但不断收到错误: ... empty array with 0 length

我尝试了一些选择器的组合,但仍然得到[]

如何成功序列化?

以下是我的代码:

HTML

 

Items

JS

 $('#itemInformation .nextButton').bind('click', function (event) { event.preventDefault() console.log($('.itemGroup').serializeArray()) }) 

当心!

您需要为所有 字段添加name属性,如下所示:

  

此外,使用

而不是

除非您确实有明确的理由这样做。

serializeArray();的语法serializeArray(); 如下: $(selector).serializeArray();

参考: w3schools (阅读定义和用法)

这里使用相同的概念,旨在序列化相似项目的集合

请注意 :使用

元素不是强制性的,但只是建议您根据您在post中分享的预期目的和信息轻松有效地序列化; 我可能误读了你,但最重要的是错过了name属性,它解释了你的空数组[]因为没有什么可以序列化。

请记住,根据您的项目要求,您可能必须在需要时使用

您可以使用具有不同ID

元素将要标识的相关项目分组为一个单元。 因此,您可能会遇到以下情况:

 

然后你可以使用$('#itemDetails').serializeArray(); 序列化整个表单或$('#FIELDSET_ID').serializeArray(); 其中FIELDSET_ID是您要根据事件从表单序列化所选字段集的相应ID ,以实现您的预​​期目的。


添加了下面的代码段,说明如何有效地将项目与其对应的值配对;

 $('#itemInformation .nextButton').bind('click', function (event) { event.preventDefault(); console.table($('#itemInformation').serializeArray()); console.log($('#itemInformation').serializeArray()); }); 
 

Items

.serializeArray()方法使用标准W3C规则来成功控制,以确定它应包含哪些元素; 特别是该元素不能被禁用,并且必须包含name属性。

IMO,使用form并将name属性应用于所有输入。

 var formdata = $( "#itemInformation" ).serializeArray(); 

仅供参考,使用form是一种很好的做法,但使用它并不是强制性的。

官方文档serializeArray()

 $('#itemInformation .nextButton').bind('click', function (event) { event.preventDefault() console.log($('#itemInformation').serializeArray()) }) 
  

Items