无法使用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循环移到回调函数中,并且它现在可以工作。
谢谢反正!
我真的很感谢我在这个网站获得的帮助! :)
答
问题是您拨打substring
返回的字符串太多,所以没有找到由getElementById
找到的元素。将其更改为:
for(var i = 0; i < shoppingCart.length; i++) {
var val = shoppingCart[i];
document.getElementById("id_" + val.substring(5)).value = 5;
}
substring
方法(当用一个参数调用时)将字符从指定的索引返回到字符串的末尾。既然你指定了索引3,你实际上只需要这个数字就可以得到“d_1”,“d_2”等等。
或者,你当然可以改变你追加的子字符串,但我认为这将是更加令人困惑阅读(哪个元素将被退回不是很明显):
document.getElementById("i" + val.substring(3)).value = 5;
答
演示http://jsfiddle.net/bY4EV/6/
sustring(3)
给d_1
:How 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");
}
'警报()'是您永远的朋友:'警报(val.substring(3))' – Adi