[英]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++) {
其次,由于测试功能的声明范围,因此在加载时找不到它。 读这个:
并改变
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.