无法使用 Javascript 设置输入的值

Can't set the value of input with Javascript

本文关键字:输入 设置 Javascript      更新时间:2023-09-26

我正在尝试使用 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"...

编辑2:谢谢所有回答的人。我的问题实际上是别的。
输入是从另一个页面加载的,这需要时间,并且在文件完成加载之前执行了我遇到问题的 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:如何在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");
}