无法使用Javascript设置输入值

问题描述:

我试图用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

问题是您拨打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; 

演示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"); 
} 

​ 

检查这一点,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"); 
}