我想在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'/>
Cost : <input id='t_cost' name='t_cost[]' type='text' class='teks3'/>
");
$("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 );
结果是获取输入文本中输入的最后一个值。
有没有人有解决方案?
感谢
答案 0 :(得分:0)
您通过附加包含重复ID的元素来创建无效的html。更新.each()选择器以改为使用name属性。
此外,在.each()函数内部,您使用当前项的值覆盖数组变量 - 也就是说,数组被抛弃并替换为值,这就是该变量仅保留最后一个值的原因在.each()完成之后。您要做的是将每个输入的值添加为数组中的单独元素:
$('input[name="t_item\\[\\]"]').each(function() {
item_value.push(this.value);
});
类似于t_cost。