0

我这里有一些验证用户表单的 javascipt 代码。当用户输入正确答案时,它会告诉他们并为他们提供下一个问题的链接。至少,这是它应该做的。当我单击表单时,它会重新加载页面,但它不应该因为我添加了返回 false。

div tra 保存 35
,div usermsg 是用户输入的值。

<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>

任何想法为什么这不起作用?

4

5 回答 5

3

它应该是

if (clientmsg6 != rightanswer)

不是

if (clientmsg6<>rightanswer)
于 2013-07-22T20:40:24.363 回答
0

文档完成加载后,您需要附加处理程序。

将您的脚本包装在以下内容中

<script>
$(function() {
  // script
});
</script>
于 2013-07-22T20:40:19.740 回答
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>
于 2013-07-22T20:38:47.807 回答
0

尝试使用 .text() 而不是使用 .html()

于 2013-07-22T20:39:29.437 回答
0

如果 #submit 是一个链接标签,否则使用表单 ID 和提交事件

 $("#submit").click(function(e){
        e.preventDefault() 

        ...
        ...
        ...
    }); 
于 2013-07-22T20:39:45.800 回答