2012-11-28 49 views
1
$(document).ready(function(){ 
    $("#userid").blur(function(){ 
     $.post("validation.php?input=userid",{ userid:$("#userid").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useridError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
      } 
     }); 

    }); 
}); 

你好傢伙,我有這個代碼使用jQuery來驗證用戶標識。會有一些更多的驗證,例如密碼,名字等,但我很困惑。現在我可以告訴用戶插入的用戶標識包含錯誤。當發佈表單時,我如何檢查錯誤?在提交表格之前檢查ajax中的錯誤

例如,用戶名和名稱會出錯,所以當我們點擊提交時,表單不會提交。如果沒有顯示錯誤,則可以提交表單。

在此先感謝!

回答

0
<script type="text/javascript"> 
/*$(document).ready(function(){ 
    $("#userid").blur(function(){ 
     $.post("validation.php?input=userid",{ userid:$("#userid").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useridError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 

    }); 
    $("#useremail").blur(function(){ 
     $.post("validation.php?input=useremail",{ useremail:$("#useremail").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 

    }); 
    $("#username").blur(function(){ 
     $.post("validation.php?input=username",{ username:$("#username").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 

    }); 
});*/ 

function validate_userid(){ 
    $.post("validation.php?input=userid",{ userid:$("#userid").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useridError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
} 
function validate_useremail(){ 
    $.post("validation.php?input=useremail",{ useremail:$("#useremail").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
} 

function validate_username(){ 
    $.post("validation.php?input=username",{ username:$("#username").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
} 
function validate(){ 
var userid = $("#userid").val(); 
var useremail = $("#useremail").val(); 
var username = $("#username").val(); 
if(userid == ""){ 
    validate_userid(); 
}else if(useremail == ""){ 
    validate_useremail(); 
}else if(username == ""){ 
    validate_username(); 
} 
} 

/*You can use any one of the validate()--------------the two are working as same-------------------*/ 
function validate(){ 
    var userid = $("#userid").val(); 
    var useremail = $("#useremail").val(); 
    var username = $("#username").val(); 
    if(userid == ""){ 
     $.post("validation.php?input=userid",{ userid:$("#userid").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useridError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
    }else if(useremail == ""){ 
     $.post("validation.php?input=useremail",{ useremail:$("#useremail").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
    }else if(username == ""){ 
     $.post("validation.php?input=username",{ username:$("#username").val() } ,function(data){ 
      if(data == "blank"){ 
       $("#useremailError").removeClass().addClass('messageError').html('Please do not leave blank!'); 
       return false; 
      } 
     }); 
    } 
} 

</script> 
<form action="" method="post"> 
<input type="text" name="userid" id="userid" value="" onblur="return validate_userid();" /> 
<div id="useridError"></div> 

<input type="text" name="useremail" id="useremail" value="" onblur="return validate_useremail();" /> 
<div id="useremailError"></div> 

<input type="text" name="username" id="username" value="" onblur="return validate_username();" /> 
<div id="usernameError"></div> 

    <input type="submit" value="SUBMIT" name="submit" id="submit" onclick="return validate();" /> 
</form> 
+0

謝謝,但我使用.blur函數爲用戶提供更好的用戶界面。當焦點移動時,消息將直接顯示給用戶,而不是填寫所有表單,單擊提交按鈕並顯示錯誤消息。 – Bizarre

+0

只需在你的代碼中加入'return false;'這個'$(「#useridError」)。removeClass()。addClass('messageError')。html('請不要留空白! – Kichu

+0

除了userid,我會做一些更多的驗證,這將是$ .post(「#name」)。blur().......我的意思是,讓我說我填寫的電子郵件地址,並得到了問題,當我移動到名稱文本框時,錯誤將顯示在電子郵件地址文本字段旁邊。所以我想阻止表單被提交,如果有任何錯誤信息顯示。 – Bizarre

0

您可以檢查使用Regex值如下

SCRIPT

var ck_name = 'YourDesiredRegExForValidation';//set your desired Regex to validate your `name` 

function validate(form){ 
    var name = form.name.value; 
    //set your all field's value in a variable 
    var errors = []; 

if (!ck_name.test(name)) { 
    errors[errors.length] = "You valid Name ."; 
} 
//simultaneously check out all fields 

if (errors.length > 0) { 
     reportErrors(errors); 
     return false; 
} 
    return true; 
} 

// Following function is just to display Errors 
function reportErrors(errors){ 
     var msg = "Please Enter Valide Data...\n"; 
     for (var i = 0; i<errors.length; i++) { 
       var numError = i + 1; 
       msg += "\n" + numError + ". " + errors[i]; 
     } 
     alert(msg); 
} 

退房this

+0

謝謝,但我使用PHP。 – Bizarre

+0

嘿謝謝你的回答和鏈接。很有幫助。 – Bizarre

+0

@Bizarre你最受歡迎..請標記爲答案(通過點擊答案旁邊的白色箭頭),如果它對你有幫助,所以如果其他卡住這個問題將得到正確的解決方案。請檢查此常見問題http://stackoverflow.com/faq#howtoask – Usman

0

   簡而言之,如果數據沒有通過驗證,讓函數返回false;返回false將阻止表單將數據發佈到服務器;如果數據通過驗證,則讓該函數返回true。
   我可以進一步解釋,但基本上,這就是需要發生的事情。

   希望這會有所幫助。