2012-07-01 137 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>