数组输入文本获取值

时间:2012-04-02 04:34:03

标签: javascript arrays input

我想在javascript中获取数组的输入文本值

这是我的代码:

Item : <input id="t_item" name="t_item[]" type="text" class="teks3">
Cost : <input id="t_cost" name="t_cost[]" type="text" class="teks3">
<input type="button" id="tb_more_item" class="add_file"/>

和js代码是:

$("input#tb_more_item").click(function(){
   var new_file = $("
      Item : <input id='t_item' name='t_item[]' type='text' class='teks3'/>&nbsp;
      Cost : <input id='t_cost' name='t_cost[]' type='text' class='teks3'/>&nbsp;
   ");

   $("div#div_item").append(new_file).fadeIn();
});

我尝试使用此代码获得更多项目值:

var item_value = [], cost_value = [];

$("input#t_item").each(function() {
   $thisItem = $(this);
   item_value = $thisItem.val();
});
$("input#t_cost").each(function() {
   $thisCost = $(this);
   cost_value = $thisCost.val();
});

alert(item_value +"-"+ cost_value );

结果是获取输入文本中输入的最后一个值。

有没有人有解决方案?

感谢

1 个答案:

答案 0 :(得分:0)

您通过附加包含重复ID的元素来创建无效的html。更新.each()选择器以改为使用name属性。

此外,在.each()函数内部,您使用当前项的值覆盖数组变量 - 也就是说,数组被抛弃并替换为值,这就是该变量仅保留最后一个值的原因在.each()完成之后。您要做的是将每个输入的值添加为数组中的单独元素:

$('input[name="t_item\\[\\]"]').each(function() {
   item_value.push(this.value);
});

类似于t_cost。