2011-06-09 34 views
0

出于某种原因,我的jQuery验证和ajax将无法正常工作,我看不到我在哪里做了这个脚本错误。我在头文件中引用jquery,当我删除ajax函数时脚本运行正常。任何人都可以看到发生了什么?jquery验证将不会执行

<script type="text/JavaScript"> 

$(document).ready(function() { 

$('#btn-submit').click(function(e) { 

    // stop normal button action, whatever it is 
    e.preventDefault(); 

    $(".error").hide(); 
    var hasError = false; 
    var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 

    var emailaddressVal = $("#UserEmail").val(); 
    if(emailaddressVal == '') { 
     $("#submit").after('<span class="error">Please enter a email address.</span>'); 
     hasError = true; 
    } 

    else if(!emailReg.test(emailaddressVal)) { 
     $("#submit").after('<span class="error">Email Not Valid'); 
     hasError = true; 
    } else if(emailReg.test(emailaddressVal)){ 
     $("#submit").after('<span class="error">Email Updated'); 
    } 

    if (!hasError) { 
    $.ajax({ 
     type: "POST", 
     url: "updateEmails.php", 
     data: "UserEmail="+emailaddressVal, 
     success: function(data){ 
      $(".parentEmail").html(emailaddressVal); 
     } 
    }); 
    } 

}); 
}); 
</script> 

<form method="post" name="form1" action=""> 
<label>Email Address:</label> 
<input type="text" name="UserEmail" id="UserEmail" value="" size="32" /> 
<input type="submit" value="Submit" id="btn-submit" /> 
</form> 
+0

要插入的格式不正确的HTML几个'.after()'调用。您错过了结束范围标签。 – 2011-06-09 06:23:17

回答

0

它正在验证,但是,您在ID为“submit”的元素之后显示错误消息,而您的提交按钮的ID为“btn-submit”。

您需要修改此:

$("#submit").after(... 

这样:

$("#btn-submit").after(... 

也是在HTML添加结束span标签由阿拉斯泰尔·皮茨提到