簡體   English   中英

頁面加載后,如何將值加載到輸入文本字段中?

[英]How do I load values into input text fields once the page is loaded?

現在,我正在嘗試以下代碼,但是在頁面加載時,任何輸入文本框中都不會出現任何內容。

HTML:

<body onload="test()">
<input type="text" id="line0"></input>
<br>
<input type="text" id='line1'></input>
<br>
<input type="text" id='line2'></input>
</body>

使用Javascript:

function test() {
    var value = "test|some|thing";
    var valueArray = value.split("|");
    for (var lineNumber=0; lineNumber < valueArray.size(); lineNumber++) 
    {
        line = "line" + lineNumber;
        document.getElementById(line).value = valueArray[lineNumber];
    }
}

JFiddle: http : //jsfiddle.net/mWL9m/1/

在我的實際代碼中,我將從函數外部引入一個值,但這並不是很重要。 現在,我只是使用測試值value

我看了幾個不同的線程,但是所有線程似乎都集中在onclick而不是onload

<script>
document.onreadystatechange = function() 
{
    Javascript code goes here
}
</script>

要么

<script>
window.onload = function()
{
    Javascript code goes here
}
</script>

更新了您的小提琴,這里是代碼。

(function(){ //This replaces the onload by executing the code within this annonymous function once the page loads.
var value = "test|some|thing";  //No edits here
var lineNumber = 0; //No edits here
var valueArray = value.split("|");
for (lineNumber=0; lineNumber < valueArray.length; lineNumber++) { //using .length instead of size and initialized lineNumber again, mostly because I like to keep my initialization in the loop, personal preference.
    var lineid = "line" + lineNumber; // It was missing "var", changed the variable name too
    var currentLine = valueArray[lineNumber];  //same deal
    var inputElem=document.getElementById(lineid); //I get the element before accessing the value property, again, preference mostly
    inputElem.value = currentLine; //same code.
} //End of for loop
})(); //end of the annonymous function

您使用錯誤的屬性來獲取數組的大小。 用戶.length而不是.size()

示例: http//jsfiddle.net/u2g2p/1/

function test() {
    var value = "test|some|thing";
    var valueArray = value.split("|");
    for (var lineNumber=0; lineNumber < valueArray.length; lineNumber++) 
    {
        line = "line" + lineNumber;
        document.getElementById(line).value = valueArray[lineNumber];
    }
}

小提琴有2個問題。 首先是您應該使用length而不是size()來獲取數組的長度(我不相信Javascript數組有內置的size方法):

for (lineNumber=0; lineNumber < valueArray.length; lineNumber++) {

其次,由於測試功能的聲明范圍,因此在加載時找不到它。 讀這個:

JavaScript未在jsfiddle.net上運行

並改變

function test() {

對此:

window.test = function() {

它是數組中對象數的.length。

/*Javascript*/

function test(){
    var testVal = "test|some|thing";
    testValArr = testVal.split('|');

    for (i = 0; i < testValArr.length; i++) { 

     document.getElementById('line' + i).value = testValArr[i];
  }
}

暫無
暫無

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

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