无法使用Javascript设置输入值

时间:2012-06-25 12:08:20

标签: javascript jquery html input

我正在尝试使用Javascript更改输入字段的值 我尝试了一切,但似乎没有任何作用。我尝试将5放在引号之间并使用jquery。我还仔细检查了数组和所有内容。

这是输入代码:

<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/

编辑:似乎它不适用于type =“text”以及......

EDIT2:谢谢大家的回答。我的问题其实是别的。
输入是从另一个页面加载的,这需要时间,并且在文件加载完成之前执行了我遇到问题的for循环(见上文)。
我所做的只是将for循环移动到回调函数,现在可以正常工作。

无论如何,谢谢! 我非常感谢我在这个网站上获得的帮助! :)

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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");
}

​

答案 2 :(得分: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");
}