这是我用javascript做任何事情的第二天,所以我是一个完整的初学者。正如标题所述,我只想使用settimeout函数更改文本框的文本值。我搜索过互联网并走到了尽头。这是我到目前为止所做的,
putftp.onclick = function () {
var Text = document.getElementById("TextBox");
function firsttext() {
document.getElementbyID("TextBox").innerHTML = "This is the first test.";
setTimeout("secondtest()",3000);
}
function secondtest() {
document.getElementById("TextBox").innerHTML = "This is the second test.";
setTimeout("thirdtest()",5000);
}
function thirdtest() {
document.getElementById("TextBox").innerHTML = "This is the last test.";
}
};
我不确定我是否使用了正确的格式,或者即使我接近正确的格式。我非常确定一切正常,除了document.getElementbyID(“textbox”)。innerHTML part。我认为会有一些改变,但它只是我的第二天所以我真的可能对这整个问题毫无头绪。感谢您的帮助!
答案 0 :(得分:3)
要在按钮单击后3秒更改文本,请执行以下操作:
putftp.onclick = function () {
window.setTimeout(function() {
document.getElementById("TextBox").value = "This is the first test.";
}, 3000);
};
您的原始代码中有两个我为您修复的错误:
TextBox
是一个文本框,您需要指定其value
属性,而不是innerHTML
。getElementById
而不是getElementbyID
。 JavaScript区分大小写。要在两秒钟后再次更改,您可以添加“嵌套”计时器:
putftp.onclick = function () {
window.setTimeout(function() {
document.getElementById("TextBox").value = "This is the first test.";
window.setTimeout(function() {
document.getElementById("TextBox").value= "This is the second test.";
}, 2000);
}, 3000);
};
答案 1 :(得分:2)
您发布的代码存在的明显问题是您没有调用firsttest()
- 函数。因此,永远不会对setTimeout进行第一次调用。此外,您可以通过仅传递函数来增强脚本,如下所示:setTimeout(secondtest, 3000);
其次,由于你已经获得了一次元素,为什么不通过削减一些getElementById:s来缩短代码。
putftp.onclick = function () {
var Text = document.getElementById("TextBox");
function firsttext() {
Text.innerHTML = "This is the first test.";
setTimeout(secondtest, 3000);
}
function secondtest() {
Text.innerHTML = "This is the second test.";
setTimeout(thirdtest, 5000);
}
function thirdtest() {
Text.innerHTML = "This is the last test.";
}
firsttext();
};
答案 2 :(得分:1)
执行时未定义函数,因为传递字符串会导致它在全局范围内运行。这些函数仅在onclick
处理程序中定义。
你应该只传递函数本身,而不是传递字符串。另外,为什么不实际使用Text
变量呢?你应该通过执行第一个函数来启动这个过程。
作为旁注,text
和test
的命名不是很好;它很容易被误读。
putftp.onclick = function () {
var Text = document.getElementById("TextBox");
firsttext(); // start process
function firsttext() {
Text.innerHTML = "This is the first test.";
setTimeout(secondtest, 3000);
}
function secondtest() {
Text.innerHTML = "This is the second test.";
setTimeout(thirdtest, 5000);
}
function thirdtest() {
Text.innerHTML = "This is the last test.";
}
};