標籤:
網上的人不厚道呀 validate 這玩意的非同步是 返回的 echo ‘true‘ 或者 echo ‘false‘;
很少有人說呀~.~ 轉載了一篇原文:
jquery.validate.js對於資料的遠程驗證的使用,官方網址文檔較為簡陋,執行個體較為簡單,其實jquery.validate.js功能是如此的強,本文章主要講解remote 的使用方法。
本執行個體中使用jquery.validate.js驗證註冊表單,其中驗證碼與使用者名稱使用remote方式驗證,以下為checkreg.js的原始碼。
$(function(){ /*表單提交時的處理方式,必需放在驗證條件設定前面*/ $.validator.setDefaults({ submitHandler: function(){ /*使用AJAX方式提交表單*/ $.ajax({ type:"POST", url:"phpscript/cmd_User.php?cmd=add", data:{validateNum:$("#validateNum").val(), username:$("#username").val(), pwd:$("#pwd").val(), email:$("#email").val(), qq:$("#qq").val() }, dataType:"json", cache:false, success:function(json){ if(json.success=="true"){ $("#reginfo").html("註冊成功,系統現將為你自動登入。"); $("#reginfo").css("color","green"); setTimeout(sendIndex,1500); }else{ $("#reginfo").html("註冊失敗,請檢查是否填寫正確。"); $("#reginfo").css("color","red"); } } }); //form1.submit(); } }); /*驗證條件設定*/ $("#regform1").validate({ event:"blur", rules:{ validateNum:{required:true,number:true,remote:"phpscript/validateNum.php"}, username:{required:true,rangelength:[2,20],remote:"phpscript/exist_User.php"}, email:{required:true,email:true,maxlength:250}, pwd:{required:true,rangelength:[4,16]}, pwd2:{required:true,equalTo:‘#pwd‘}, qq:{required:false,number:true,rangelength:[5,12]} }, messages:{ validateNum:{remote:"請輸入正確的驗證碼"}, username:{remote:"使用者名稱已經存在"} } }); });
以下為 validateNum.php 的原始碼
1 <?php 2 Header("Cache-Control","no-store"); 3 Header("Pragma","no-cache"); 4 Header("Expires", "0"); 5 session_start(); 6 include_once (‘../include/mysql.inc.php‘); 7 $mysqli= new mysqli(DBHOST,DBUSER,DBPWD,DBNAME,DBPORT); 8 $mysqli->set_charset(DBCHAR); 9 $sql = "select * from ".DBPREFIX."users where username=‘{$_GET[‘username‘]}‘";10 $result = $mysqli->query($sql);11 $count = $mysqli->affected_rows;12 if($count == 1){13 echo "false";14 }else{15 echo "true";16 }17 ?>
遠程檔案 validateNum.php, exist_User.php 檔案只能輸出 "true" 或 "false",不能有其它輸出,請注意。
本文轉自:http://www.janefly.com/html/chengxurensheng/JQuery/2009/0608/2.html
jquery.validate.js remote (php)