2012-06-25 107 views
0

我試圖用Javascript更改輸入字段的值。
我嘗試了一切,但似乎沒有任何工作。我試圖把5之間的引號和使用jQuery。我還仔細檢查了數組和所有內容。無法使用Javascript設置輸入值

下面是輸入代碼:

<input type="number" id="id_[SOME_ID_HERE]" value="0"> 

並用於更新的值的迴路。

for (var i = 0; i < shoppingCart.length; i++) { 
    var val = shoppingCart[i]; 
    document.getElementById("id_" + val.substring(3)).value = 5; 
} 

的jsfiddle:http://jsfiddle.net/zkTud/

編輯:好像它不與工作類型= 「文本」,以及...

EDIT2:謝謝大家誰回答。我的問題其實是別的。
輸入是從另一個頁面加載的,花費了一些時間,並且在文件加載完成之前執行了我遇到問題的for循環(請參見上文)。
我所做的只是把for循環移到回調函數中,並且它現在可以工作。

謝謝反正!
我真的很感謝我在這個網站獲得的幫助! :)

+1

'警報()'是您永遠的朋友:'警報(val.substring(3))' – Adi

回答

3

問題是您撥打substring返回的字符串太多,所以沒有找到由getElementById找到的元素。將其更改爲:

for(var i = 0; i < shoppingCart.length; i++) { 
    var val = shoppingCart[i]; 
    document.getElementById("id_" + val.substring(5)).value = 5; 
} 

這是updated fiddle

substring方法(當用一個參數調用時)將字符從指定的索引返回到字符串的末尾。既然你指定了索引3,你實際上只需要這個數字就可以得到「d_1」,「d_2」等等。

或者,你當然可以改變你追加的子字符串,但我認爲這將是更加令人困惑閱讀(哪個元素將被退回不是很明顯):

document.getElementById("i" + val.substring(3)).value = 5; 
2

演示http://jsfiddle.net/bY4EV/6/

sustring(3)d_1How to substring in jquery

希望這有助於

代碼

var shoppingCart = new Array(); 
shoppingCart[0] = "prod_1"; 
shoppingCart[1] = "prod_3"; 
shoppingCart[2] = "prod_2"; 

for(var i = 0; i < shoppingCart.length; i++) { 
    var val = shoppingCart[i]; 

    $("#id_" + val.substring(5)).val("5"); 
} 

​ 
1

檢查這一點,JSFiddle,更新和修改您的問題。

代碼:

var shoppingCart = new Array(); 
shoppingCart[0] = "prod_1"; 
shoppingCart[1] = "prod_3"; 
shoppingCart[2] = "prod_2"; 

for(var i = 0; i < shoppingCart.length; i++) { 
    var val = shoppingCart[i]; 

    $("#id" + val.substring(4)).val("5"); 
}