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)

 

posted @ 2016-03-15 17:18  WindWant  阅读(1522)  评论(0编辑  收藏  举报
文章精选列表