2015-12-01 37 views
0

所以返回所有更多鈔票價值我想知道我如何顯示結果一旦有人輸入字母A如何在一個switch語句

的問題是,它顯示了幾秒鐘,並在前看不見

這裏是我的代碼:

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; 
 
     } 
 
    } 
 
}
<form onsubmit=""> 
 
    <input type="text" id="Search_Text"></input> 
 
    <button type="submit"onclick="pop()">change</button> 
 
</form> 
 
<p id="result"></p>

+3

你有一個想法,什麼提交表單的手段? – Teemu

+0

A * for loop *的處理速度與處理器所允許的一樣快,所以如果渲染到頁面,速度會非常快。 'alert'將起作用,因爲它會暫停腳本並等待用戶繼續。 – shennan

+0

泰姆你不必粗魯,我在這裏尋找新的幫助 – benji8

回答

0

你有<form>標籤內的submit式按鈕。

單擊該按鈕將導致瀏覽器重新加載頁面。

因爲有很多方法可以阻止這種情況發生......一個建議可以把return false;<form>標籤的onsubmit屬性中:

<form onsubmit="return false;">

+1

謝謝你的作品 – benji8

0

我認爲這是因爲您所提交的表單和TH e頁面重新加載。這就是爲什麼你只看到結果幾秒鐘。

試試這個:

function pop(event){ 
    event.preventDefault(); 
    var text =document.getElementById('Search_Text').value; 
    var res = text.split(""); 
    ... 
} 
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); 
 
     
 
    } 
 
    } 
 
}
<form onsubmit=""> 
 
<input type="text" id="Search_Text"></input> 
 

 
<button type="submit"onclick="pop()">change</button> 
 
</form> 
 

 
<p id="result"></p>

+0

這個是awsome – benji8