无法使用 Javascript 设置输入的值
Can't set the value of input with Javascript
我正在尝试使用 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");
}
相关文章:
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何使用ian:accounts-ui-botstrap-3根据Meteor中的用户输入设置配置文件字段值
- 使用JS将输入设置为只读
- 正在为禁用的输入设置标题属性
- 用户输入设置数组长度
- 如何使用来自@Html.TextBoxFor的用户输入设置@Html.RadioButtonFor的值
- 根据其他输入设置最大值
- PHP论坛建设,输入设置栏(粗体,..链接等),如何申请
- 为输入设置最大值时出现插值错误
- jQuery MaskMoney - 将输入设置为字段的开头
- 在 Javascript 中将文本输入设置为变量
- (联合国)通过字符串输入设置嵌套数组值
- 将类型为数字的输入设置为字符串
- jQuery UI Slider(从文本输入设置)
- 根据第一个询问的输入设置输入类型范围的最小值
- 如何通过JavaScript将HTML5输入设置为必需
- 根据用户在Javascript中的输入设置Date()对象的正确方法是什么
- 如何在没有提交按钮AngularJS的情况下将所有输入设置为$touch
- angularjs将默认日期输入设置为今天
- 如何将用户尝试填充数据的输入旁边的所有输入设置为只读