我的jquery表单验证不起作用,因为我希望它应该

时间:2013-07-22 20:36:14

标签: javascript jquery html

我在这里有一些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>

为什么这不起作用?

5 个答案:

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