所以我想知道一旦有人输入字母A我怎么显示结果。
问题是它出现了几秒钟并且消失了
这是我的代码:
function pop(){
var text = document.getElementById('Search_Text').value;
var res = text.split("");
for (var i = 0; i < res.length; i++){
switch(res[i]) {
case "a":
alert("a");
break;
case "A":
document.getElementById("result").innerHTML="C";
break;
}
}
}
&#13;
<form onsubmit="">
<input type="text" id="Search_Text"></input>
<button type="submit"onclick="pop()">change</button>
</form>
<p id="result"></p>
&#13;
答案 0 :(得分:0)
我认为这是因为您正在提交表单并重新加载页面。这就是为什么你只看几秒钟的结果。
试试这个:
function pop(event){
event.preventDefault();
var text =document.getElementById('Search_Text').value;
var res = text.split("");
...
}
答案 1 :(得分:0)
submit
标记内有<form>
类型按钮。
单击该按钮将导致浏览器重新加载页面。
由于有很多方法可以阻止这种情况发生......一个建议可能是将return false;
放在onsubmit
标记的<form>
属性中:
<form onsubmit="return false;">
答案 2 :(得分:0)
我的预感是你误解了表单的正确使用,而你真正想要做的就是在输入文本框并单击按钮后将字母单独吐出到页面上
for循环可以像处理器允许的那样快速完成所有操作,因此如果您要渲染到某个页面,它将会非常快。
如果您想清楚地看到事物,那么您必须使用带有回调的JavaScript计时事件。这是一个例子:
function pop(){
var text = document.getElementById('Search_Text').value;
var res = text.split("");
var element = document.getElementById("result");
var duration = 500;
showNextLetter();
function showNextLetter () {
if (res.length) {
element.innerHTML += res.shift();
setTimeout(showNextLetter, duration);
}
}
}
&#13;
<form onsubmit="">
<input type="text" id="Search_Text"></input>
<button type="submit"onclick="pop()">change</button>
</form>
<p id="result"></p>
&#13;