Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t将所有数组键和值放入数组_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript Can';t将所有数组键和值放入数组

Javascript Can';t将所有数组键和值放入数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,当我试图查看所有输入值时,它总是显示最后一个值 function addInput() { $('.addElement').append('<label>Sağlık Etkisi</label><input id="health" name="health[]" type="text" class="form-control message">'); $('.addElement').append('<label>Yaşam Ta

当我试图查看所有输入值时,它总是显示最后一个值

function addInput() {
   $('.addElement').append('<label>Sağlık Etkisi</label><input  id="health" name="health[]" type="text" class="form-control message">');
   $('.addElement').append('<label>Yaşam Tarzı Önerisi</label><input id="lifeStyle" name="lifeStyle[]" type="text" class="form-control message">');
   $('.addElement').append('<label>Öneriler</label><input id="advice" name="advice[]"  type="text" class="form-control message">');

}
我做了
text[index]['health']
,这也给了我错误

这段代码在输出时,总是给我最后3个输入值。
对不起,我说的是英语。

问题是因为您在每次迭代中都覆盖了
健康
生活方式
建议
属性的值,因此每个循环中的最终值都是可访问的

解决此问题的一个解决方案是构建输入值数组,并将其分配给属性:

$('#test').submit(function(e) {
  e.preventDefault();

  var healthVals = $("input[name='health[]']").map(function() { return this.value; }).get();
  var lifestyleVals = $("input[name='lifeStyle[]']").map(function() { return this.value; }).get();
  var adviceVals = $("input[name='advice[]']").map(function() { return this.value; }).get();

  var text = [];
  text['health'] = healthVals;
  text['lifeStyle'] = lifestyleVals;
  text['advice'] = adviceVals;
});

还要注意,在附加元素上循环的事实意味着它们可以有多个副本。在这种情况下,您应该从附加的HTML中删除
id
属性,因为它将导致无效的重复项。

text['health']=item.value<只覆盖最后一个值。你想要一个数组还是逗号分隔的列表?是的@epascarello,@epascarello多亏了Rory的回答,现在就可以了!也谢谢你的回答。你好。谢谢你的回答。由于未定义项,我获取空值。是的。映射(功能(项目),对吗?也感谢您对id的警告。抱歉,
item
应该是
this
。我已经为您更新了答案,现在效果很好!感谢您的大力帮助,我也非常理解。
$('#test').submit(function(e) {
  e.preventDefault();

  var healthVals = $("input[name='health[]']").map(function() { return this.value; }).get();
  var lifestyleVals = $("input[name='lifeStyle[]']").map(function() { return this.value; }).get();
  var adviceVals = $("input[name='advice[]']").map(function() { return this.value; }).get();

  var text = [];
  text['health'] = healthVals;
  text['lifeStyle'] = lifestyleVals;
  text['advice'] = adviceVals;
});