Validate 使用remote进行网络校验

  • 时间:
  • 来源:互联网
  • 文章标签:

Validate 使用remote进行网络校验

  • 问题分析
  • 校验代码
  • 注意事项

问题分析

验证用户账号是否已存在。在验证用户填入的是手机号格式账号后发起网络请求,查询该账号是否已经存在。

校验代码

 $("#form").validate({
        rules: {
            userName: {
                required: true,
                isPhone: true,
                remote: {
                    type: "GET",
                    url: "getUserName", //请求地址
                    data: {
                        userName: function () {
                            return $("input[name='userName']").val();
                        },
                        uid: getUid,
                        token: getToken
                    },
                    dataFilter: function (data) {
                        var jsonData = JSON.parse(data);
                        if (jsonData.data) {
                            return true;
                        } else {
                            return false;
                        }
                    }
                }
            }
        },
        messages: {
            userName: {
                remote: "暂无账号信息!<a οnclick='register()' style='color: #0e9aef;float: right'>点击注册</a>"
            }
        },
        submitHandler: function (form) {
        	...
        },
        errorElement: 'div',
        wrapper: "p",
        errorPlacement: function (error, element) {
            error.appendTo(element.parent());
        },
    });

function getUid() {
    return uid;
}

function getToken() {
    return token;
}

注意事项

  • validate校验顺序是按照rules里写的顺序校验的,写在前面的会先校验,校验不通过不会校验后面的条件。
  • remote校验如果触发校验的值与上一次校验时值相同,则不会发起网络校验,校验结果与之前相同。
  • remote里data属性不用上面的方法获取到的值是固定的

本文链接http://www.taodudu.cc/news/show-82851.html