2014-02-26 53 views
-2

如何使用jQuery驗證用戶名和密碼,然後相應地進行處理?jQuery/PHP的:如何阻止提交HTML表單?

這裏是我的形式:

<form action="registration_form.php" method="post" name="register_form"> 
    <label>Email</label> 
    <input type="email" placeholder="Enter your email..." name="email" required="required"/> 
    <br> 
    <label>Password</label> 
    <input id="pwd" type="password" placeholder="Enter your password..." name="pwd" required="required"/> 
    <br> 
    <label>Re-enter Password</label> 
    <input id="re_pwd" type="password" placeholder="Renter your password..." name="re_pwd" required="required"/> 
    <br> 
    <button>register</button> 
</form> 
+1

你可以使用preventDefault jquery函數來停止提交表單,驗證後可以使用javascript提交表單。 –

+0

我已經使用這個jQuery代碼。但是,它沒有奏效。 ';('button')。點擊(功能(e){e0.preventDefault(); alert(「test message」); });' – V15HM4Y

+0

提交後,您可以禁用Javascript提交按鈕,作爲@AbhikChakraborty提到使用'preventDefault()'停止表單提交,然後你可以使用一個javascript提交一旦所有字段都被正確驗證 – Newbi3

回答

2

你可以把一個的onsubmit的形式標記,並有一個JavaScript函數返回false,如果它沒有通過驗證,但記得要始終在後端驗證以及前端

<form action="registration_form.php" method="post" name="register_form" onsubmit="return validate();"> 
     <label>Email</label> 
     <input type="email" placeholder="Enter your email..." name="email" required="required"/> 
     <br> 
     <label>Password</label> 
     <input id="pwd" type="password" placeholder="Enter your password..." name="pwd" required="required"/> 
     <br> 
     <label>Re-enter Password</label> 
     <input id="re_pwd" type="password" placeholder="Renter your password..." name="re_pwd" required="required"/> 
     <br> 
     <button>register</button> 
    </form> 

<script> 
function validate(){ 
    if(your validation passes){ 
    return true; 
    }else{ 
    return false; 
    } 
} 
</script> 
+1

感謝您的幫助.... – V15HM4Y

1
<form action="registration_form.php" method="post" name="register_form" onsubmit="return validateForm()"> 

如果你有一個JavaScript函數validateForm返回一個布爾值(真/假)值,與此更換你的第一行,如果只提交表單它通過測試。

+0

你能否詳細說明你的答案? – V15HM4Y

+0

當然,那是怎麼回事? – Scimonster

+0

我應該在函數validateForm()中寫入整個驗證嗎? – V15HM4Y

1

即使雖然你已經接受了答案,但你可以這樣做:http://jsfiddle.net/LVzry/1/

這並不完美,但它應該指向正確的方向。

$("#submit").click(function() { 
    if ($('span.error').length > 0) { 
     alert('Please fix the form errors before submitting'); 


    } else if ($("#pwd").val() !== $("#re_pwd").val()) { 
     alert("Your passwords are not the same"); 

    } else if ($("#pwd").val() === "" || $("input[type='email']").val() === "") { 
     alert("please enter name and password"); 



    } else if (!emailReg.test($("input[type='email']").val()) || !passReg.test($("input[type='pwd']").val())) { 
     alert("Make sure that your name and password are properly formatted."); 
     $("input[type='pwd']").after('<span class="error">Form Error</span>'); 


    } else { 
     $.post("registration_form.php", $('form').serialize(), function() { // post form data 
      //do something after submission 
     }); 
    } 
}); 
+0

感謝您的小提琴... – V15HM4Y

+0

@ V15HM4Y沒問題! –