Javascript / jquery if语句不起作用

时间:2014-01-28 17:31:01

标签: javascript jquery

我真的把这几个脑细胞放在一起 - 看起来很简单,但是我无法让它起作用 -

$(function() {
    function check() {
        var myname = $("#myname").val();
        var myemail = $("#myemail").val();
        var password = $("#password").val();
        var repeatpassword = $("#repeatpassword").val();

        if (myname == "") {
            $("#mynameresult").append("Please Enter Your Name");
            return false;
        }
        if (myemail =="") {
            $("#myemailresult").append("Please Enter Your Email");
            return false;
        }
        if (password == "") {
            $("#passwordresult").append("Please Enter a Password");
            return false;
        }
        if (repeatpassword == "") {
            $("#repeatpasswordresult").append("Please Repeat the Password");
            return false;
        }
        return true;
    }
});

我的表单看起来像这样 -

<table class="registrationform">

  <form method="post" onsubmit = "return check();" action="/ToDoneList/ToDoneList/usr/registrationparse.php" enctype="multipart/form-data" >

    <tr><td>Username: </td><td><input class="focusfox" type="text" name="username" id="myname"></td><td id="mynameresult"></td></tr>
    <tr><td>Email: </td><td><input type="text" name="email" id="myemail"></td><td id="myemailresult"></td></tr>
    <tr><td>Password: </td><td><input type="password" name="password" id="password" /></td><td id="passwordresult"></td></tr>
    <tr><td>Repeat the Password: </td><td><input type="password" name="repeatpassword" id="repeatpassword"/></td><td id="repeatpasswordresult"></td></tr>           
    <tr><td rowspan="2"><img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image" /></td><td><input type="text" name="captcha_code" maxlength="6" title="Enter What you see on the Left If you are having trouble click the New Image Button"/></td></tr>
    <tr><td><button type="button "onclick=\'document.getElementById("captcha").src = "/securimage/securimage_show.php?" + Math.random(); return false\'>New Image</button></td>
    <tr><td class="regbutton" colspan="2"><input type="submit" value="Register" ></td></tr>

  </form>
</table>

问题是当我提交带有空格的表单时,此函数将无法捕获。我认为它必须是我的if语句的一个问题,因为当我删除它并将它保存到变量的值并将这些值附加到变量并且在if语句之外返回false时它会阻止它提交。

无论如何,你能看到什么东西在这里是错的吗?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

您正在“准备好”回调中定义“检查”功能。因此,它不是全局的,因此您无法从“提交”处理程序中调用它。

通过jQuery附加您的提交处理程序:

$('form').submit( check );

把它放在“就绪”处理程序的最后(内部)。

答案 1 :(得分:1)

将你的函数check()放在$(function(){})块!!

之外