我在这里有一些javascipt代码验证用户表单。当用户输入正确答案时,它会告诉他们并为他们提供下一个问题的链接。至少,这应该是它应该做的。当我单击表单时,它会重新加载页面,但它不应该因为我添加了返回false。
<script>
$("#submit").click(function(){
var clientmsg6 = $("#usermsg").val();
var rightanswer = $("#tra").val();
if (clientmsg6<>rightanswer)
{
$("#confirm").html("<h2>Sorry, wrong answer.</h2>");
}
else
{
$("#confirm").html("<a href='#' onclick='play();' style='font-size:20px;' id='new1'>Click here for Question 2</a>");
}
return false;
});
</script>
为什么这不起作用?
答案 0 :(得分:3)
应该是
if (clientmsg6 != rightanswer)
不
if (clientmsg6<>rightanswer)
答案 1 :(得分:0)
要阻止表单提交,您需要在表单本身上return false
而不是在提交按钮上。您的代码应该成为:
<强> HTML 强>
<form action="page.php" method="post">
<input id="usermsg" type="text" name="answer" />
<input id="submit" type="submit" value="Submit" />
</form>
JS (请注意您所在的行clientmsg6
,语法错误)
$("#myform").on('submit', function(){
var clientmsg6 = $("#usermsg").val();
var rightanswer = $("#tra").val();
if (clientmsg6 != rightanswer) { //This line was also wrong, should be != instead of <>
$("#confirm").html("<h2>Sorry, wrong answer.</h2>");
}
else {
$("#confirm").html("<a href='#' onclick='play();' style='font-size:20px;' id='new1'>Click here for Question 2</a>");
}
return false;
});
或者,您可以通过将提交按钮更改为一个普通的旧按钮来保留现有代码,但是您将失去用户能够点击enter
键并执行相同操作的额外功能
<form action="page.php" method="post">
<input id="usermsg" type="text" name="answer" />
<input id="submit" type="button" value="Submit" />
</form>
答案 2 :(得分:0)
请尝试使用.text()
,而不是使用.html()答案 3 :(得分:0)
如果#submit是链接标记,否则使用表单ID和提交事件
$("#submit").click(function(e){
e.preventDefault()
...
...
...
});
答案 4 :(得分:0)
文档加载完成后,您需要附加处理程序。
将脚本包装在以下
中<script>
$(function() {
// script
});
</script>