2012-07-01 142 views
4

出現問題。這是我的代碼:點擊「提交按鈕」後文本迅速消失

<html> 

<body> 
<form> 
<p>13-7: <input id="in1" type="text"" /><input type="submit" onclick="check(6, 'in1', 'out1')" value="Tjek!"/></p> 
<p id="out1"></p> 
<p>20-7: <input id="in2" type="text"" /><input type="submit" onclick="check(13, 'in2', 'out2')" value="Tjek!" /></p> 
<p id="out2"></p> 



<script type="text/javascript"> 

function check(facit, input, output) { 
    var answer, evaluation; 
    answer = document.getElementById(input).value; 
    evaluation = (answer == facit) ? "Correct" : "Wrong"; 
    document.getElementById(output).innerHTML = evaluation; 
    return false; 
} 

</script> 
</form> 
</body> 

</html> 

當我點擊提交按鈕,在「正確/錯誤」僅顯示了片刻。我希望它留在網站上,有任何建議嗎?

+0

剛剛擺脫開*形式*標記,結束標記缺少的,似乎你不使用的形式anythying有用的反正。控件沒有名字,所以不能成功。 – RobG

回答

9

的提交按鈕提交表單(所以重裝頁)。

將按鈕更改爲type="button"

+0

下方說'正確'或'錯誤',解決了我的問題 - 謝謝 – user114158

2

您的按鈕是提交按鈕(<input type="submit">),因此他們會在每次點擊時提交表單並刷新頁面。改爲將您的按鈕更改爲<input type="button">

+0

當我點擊提交,它提交整個表單? – user114158

+0

@MadsFriis:是的,它的確如此。 – Ryan

2

變化的onclick功能從:

onclick="check(13, 'in2', 'out2')" 

到:

onclick="return check(13, 'in2', 'out2')" 

另外,如果你不希望表單也提交,因爲你有兩個提交按鈕,這是更好使用方法:

<input type="button" /> 
0

的形式提交,並與原來的頁面返回。

你想做什麼?

I dont want it returned with the original page .. I want it to say 'correct' og 'wrong' below the input 

如果您不想提交數據,請按minitech的建議,將類型從提交更改爲按鈕。

如果你想保存這些數據,您將需要編寫服務器端代碼,然後創建填充這些值的HTML(服務器端)。

+0

我不希望它與原來的頁面一起返回..我想讓它在輸入 – user114158

1

正是從這個

onclick="check(6, 'in1', 'out1')" 

的onclick改變

onclick="check(6, 'in1', 'out1'); return false;" 

做另一隻也以同樣的方式。

刪除return false;check函數。

參考LIVE DEMO

0
<html> 
    <body> 
    <h1>What Can JavaScript Do?</h1> 
    <p id="demo">JavaScript can change the style of an HTML element.</p> 
    <input type="button" id="click me" value="clickme" onClick="action();" /> 
    <script> 
     var hidden = false; 
     function action() { 
      hidden = !hidden; 
      if(hidden) { 
       document.getElementById('demo').style.visibility = 'hidden'; 
      } else { 
       document.getElementById('demo').style.visibility = 'visible'; 
      } 
     } 
    </script> 
    </body> 
    </html>