jquery.validate remote的用法
1,远程返回数据时,一定要返回"true"或者"false",否则就是永远就是验证不通过。
2,remote有两种方式,如下就介绍remote与PHP间的验证
(1)meta String方式(当然这种方式要引入jquery.metadata.js)
以下是我的HTML代码
<input type="text" name="moblie" id="jform_moblie" value="" class="input {validate:{required:true,telphoneValid: true,remote:'moblie_register.php?fun=moblie', messages:{required:'请填写手机号码!', telphoneValid:'请输入正确的手机号',remote:'该手机号码已被注册! <a href=login.php target=_blank>登录?</a>'}}}" />
直接remote提交到PHP页面中去。默认提交类型是GET方式提交
PHP代码:
if ($_GET['fun']=='moblie') {//检查手机是否已注册 $moblie_number=trim($_GET['moblie']); $exists_moblie=$db->query_first("select acc_moblie_number from t_account where acc_moblie_number='".$moblie_number."'"); if (empty($exists_moblie['acc_moblie_number'])) { $return['type']='true'; $return['info']='此手机号码可注册!'; }else{ $return['type']='false'; $return['info']='该手机号码已被注册!'; } exit($return['type']); }
这样就完成的验证
(2)rules方式
$("#Form2").validate({ rules: { //定义验证规则,其中属性名为表单的name属性 "mail_account": { required: true, email: true , remote: { url: '<--?php echo $this--->base;?-->/maileckmail', type: 'POST', dateType: 'json', data: { mail_account:function(){ return $('#mail_account').val(); } } } }, }, messages: { "mail_account": { email: "请输入正确的邮箱地址(例如 myemail@qq.com)", remote: "该邮箱已存在!" }, } });
PHP代码:
function checkMail(){ $mail_account = $_POST['mail_account']; if($this->Mail->findByMailAccount($mail_account)) echo 'false'; else echo 'true'; die(); }
validate 插件默认不会校验隐藏的 input(包括 type="hidden" 的或 display:"none" 的 input)