簡體   English   中英

無法使用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” ...

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如何在jquery sustring(3) 字符串

希望這可以幫助

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM