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)