2012-04-02 66 views
0

我想陣列的輸入文本值在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); 

結果是獲取我在輸入文本中輸入的最後一個值。

有沒有人有解決方案?

謝謝

+0

但沒有發現錯誤..你能解決它嗎?如何獲得輸入文本數組值? – 2012-04-02 04:41:41

回答

0

您通過追加具有重複ID的元素來創建無效html。更新.each()選擇器來代替使用name屬性。

另外,在.each()函數中,用當前項的值覆蓋數組變量 - 也就是說,數組被丟棄並被替換爲值,這就是爲什麼該變量只保留最後一個.each()完成後的值。你想要做的是將每個輸入的值作爲數組中的單獨元素添加:

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

和t_cost類似。

+0

這段代碼不能解決問題,它仍然無法獲得以前的文本輸入值。 – 2012-04-02 05:36:23