jQuery Validator remote 远程Ajax校验器



jQuery Validator remote 远程Ajax校验器

jQuery Validator的remote远程校验器用于通过远程AJAX请求对指定输入进行校验。

该校验器要求远程服务器端必须响应JSON对象字符串。

语法

jQuery Validator 1.0 新增

// 在校验规则对象中指定该属性
remote: options

// 例如:
remote: "http://www.365mini.com/user/checkExists" 
remote: { url: "url", data: {  } }

参数

参数描述
optionsString/Object/Function类型一个远程请求URL,或一个可用于$.ajax(options)的参数对象,或者一个返回前面两种参数的函数。

remote远程校验器将通过jQuery的$.ajax()方法执行一个远程请求,并根据返回结果判断校验是否成功。

参数:字符串(String)类型

如果options是一个字符串,则表示远程请求的URL。remote校验器会自动为该AJAX请求添加当前校验的表单元素的"name属性值=value值"作为参数。

参数:对象(Object)类型

如果简单的"请求URL + 参数"无法满足你的需求,你还可以自定义发送该AJAX请求所需的任何选项参数。例如:

remote: {
    url:"请求地址",
    data: "请求参数" // 也可以是{name: value}形式的对象

    // 校验器已内置如下3个参数,可以不用设置,也请不要随意更改
    // 尤其是async和dataType,否则将可能导致出现无法预料的行为
    //  type: "post",
    //  async: false,
    //  dataType: json
}

详细参数列表,请参见$.ajax()的参数说明部分。

参数:函数(Function)类型

如果options是一个函数,则它的返回值应该是前面两种类型,校验器将使用该返回值继续完成远程请求校验工作。

校验器在调用该函数时,会如下所示传入对应的参数:

options(value, context){
    // 函数中的 this 指向window对象

    // value 是当前表单元素输入的值(有可能已被格式化处理)
    // context 是校验的上下文对象
}
服务器端响应及后续处理

远程服务器端必须响应一个JSON对象,该对象可以通过设置以下约定属性以控制remote校验器的处理行为:

// 以下属性均是可选的
{
    status : "OK", // 当且仅当status为"OK"时,表示校验通过
    message: "该用户名已存在!", // 校验失败时的提示信息
    callback: "funcName" // 回调函数名称,不管校验成功失败,在返回结果前,均会调用该函数
}

// 如果指定了callback,校验器在调用函数时,会为该函数传入如下所示的参数:
funcName: (data, value, context){
    // 函数中的 this 指向当前校验的表单元素的jQuery对象

    // data 是服务器响应的JSON对象,你可以通过修改status属性来"扭转乾坤"
    // value 是当前表单元素输入的值(有可能已被格式化处理)
    // context 是校验的上下文对象
}

示例&说明

以如下HTML表单为例:

<form action="http://www.365mini.com/">
    <div>
        <label>用户名</label>:
        <input id="username" name="username" type="text" >
    </div>
    <div>
        <label>密码</label>:
        <input id="password" name="password" type="password" >
    </div>
    <input type="submit" value="提交" />
</form>

我们可以使用remote校验器来判断该用户名是否已存在:运行代码

// 在表单提交时执行校验
$("form").v("submit", {
    "#username": {
        text: /^[a-z]\w{5,15}$/i, // 先校验格式是否正确
        remote: "/user/check.php" // 校验器会自动附加请求参数:"username=输入值"
    },
    "#password": "password"
});

jQuery Validator remote 远程Ajax校验器

jQuery Validator的remote远程校验器用于通过远程AJAX请求对指定输入进行校验。

该校验器要求远程服务器端必须响应JSON对象字符串。

语法

jQuery Validator 1.0 新增

// 在校验规则对象中指定该属性
remote: options

// 例如:
remote: "http://www.365mini.com/user/checkExists" 
remote: { url: "url", data: {  } }

参数

参数描述
optionsString/Object/Function类型一个远程请求URL,或一个可用于$.ajax(options)的参数对象,或者一个返回前面两种参数的函数。

remote远程校验器将通过jQuery的$.ajax()方法执行一个远程请求,并根据返回结果判断校验是否成功。

参数:字符串(String)类型

如果options是一个字符串,则表示远程请求的URL。remote校验器会自动为该AJAX请求添加当前校验的表单元素的"name属性值=value值"作为参数。

参数:对象(Object)类型

如果简单的"请求URL + 参数"无法满足你的需求,你还可以自定义发送该AJAX请求所需的任何选项参数。例如:

remote: {
    url:"请求地址",
    data: "请求参数" // 也可以是{name: value}形式的对象

    // 校验器已内置如下3个参数,可以不用设置,也请不要随意更改
    // 尤其是async和dataType,否则将可能导致出现无法预料的行为
    //  type: "post",
    //  async: false,
    //  dataType: json
}

详细参数列表,请参见$.ajax()的参数说明部分。

参数:函数(Function)类型

如果options是一个函数,则它的返回值应该是前面两种类型,校验器将使用该返回值继续完成远程请求校验工作。

校验器在调用该函数时,会如下所示传入对应的参数:

options(value, context){
    // 函数中的 this 指向window对象

    // value 是当前表单元素输入的值(有可能已被格式化处理)
    // context 是校验的上下文对象
}
服务器端响应及后续处理

远程服务器端必须响应一个JSON对象,该对象可以通过设置以下约定属性以控制remote校验器的处理行为:

// 以下属性均是可选的
{
    status : "OK", // 当且仅当status为"OK"时,表示校验通过
    message: "该用户名已存在!", // 校验失败时的提示信息
    callback: "funcName" // 回调函数名称,不管校验成功失败,在返回结果前,均会调用该函数
}

// 如果指定了callback,校验器在调用函数时,会为该函数传入如下所示的参数:
funcName: (data, value, context){
    // 函数中的 this 指向当前校验的表单元素的jQuery对象

    // data 是服务器响应的JSON对象,你可以通过修改status属性来"扭转乾坤"
    // value 是当前表单元素输入的值(有可能已被格式化处理)
    // context 是校验的上下文对象
}

示例&说明

以如下HTML表单为例:

<form action="http://www.365mini.com/">
    <div>
        <label>用户名</label>:
        <input id="username" name="username" type="text" >
    </div>
    <div>
        <label>密码</label>:
        <input id="password" name="password" type="password" >
    </div>
    <input type="submit" value="提交" />
</form>

我们可以使用remote校验器来判断该用户名是否已存在:运行代码

// 在表单提交时执行校验
$("form").v("submit", {
    "#username": {
        text: /^[a-z]\w{5,15}$/i, // 先校验格式是否正确
        remote: "/user/check.php" // 校验器会自动附加请求参数:"username=输入值"
    },
    "#password": "password"
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue Validator是一个用于Vue.js的校验库,它可以帮助我们快速地实现表单校验功能。如果我们需要自定义校验规则,可以通过在Vue Validator中添加自定义校验来实现。具体步骤如下: 1. 在Vue Validator中定义一个自定义校验,可以使用Vue.extend方法来创建一个新的Vue实例,然后在这个实例中定义校验规则。 2. 在Vue Validator中注册自定义校验,可以使用Vue.validator方法来注册自定义校验,将自定义校验的名称和校验规则传入即可。 3. 在模板中使用自定义校验,可以在表单元素的v-validate属性中使用自定义校验的名称,然后在错误提示信息中使用自定义校验的名称即可。 例如,我们可以定义一个自定义校验来验证手机号码的格式: Vue.validator('phone', function (val) { return /^1[3456789]\d{9}$/.test(val); }); 然后在模板中使用这个自定义校验: <input type="text" v-model="phone" v-validate="'required|phone'" /> <span v-show="errors.has('phone')">请输入正确的手机号码</span> 这样就可以实现对手机号码格式的校验了。 ### 回答2: Vue Validator 是一个非常强大的表单校验库,它可以帮助我们轻松地实现表单验证功能。Vue Validator 提供了一些常见的校验规则,例如必填、数字、手机号等。如果我们需要实现一些自定义的校验规则,也可以通过实现自定义校验来实现。 Vue Validator 的自定义校验非常简单,只需要在 Vue 实例中定义一个自定义校验对象,然后在表单元素的校验规则中使用即可。下面是一个简单的例子: ```javascript Vue.use(VeeValidate); const customValidator = { getMessage(field, params, data) { return (data && data.message) || '输入值不正确'; }, validate(value, args) { if (args.some(arg => value.indexOf(arg) !== -1)) { return true; } return false; } }; new Vue({ el: '#app', data: { inputValue: '', }, validations: { inputValue: { custom: customValidator, } }, }); ``` 在这个例子中,我们定义了一个名为 customValidator 的自定义校验对象。这个校验对象包含两个方法,getMessage 和 validate。其中,getMessage 方法用于返回校验失败的提示信息,validate 方法用于实现校验逻辑。 在 Vue 实例的 validations 属性中,我们定义了一个名为 inputValue 的表单元素,并使用了 custom 校验规则,这个规则对应了我们刚才定义的 customValidator 自定义校验对象。 在页面中,我们只需要在表单元素上通过 v-model 绑定 input 中的数据,然后通过 v-validate 绑定校验规则即可: ```html <div id="app"> <form> <label>输入值:</label> <input type="text" v-model="inputValue" v-validate="'custom:foo,bar'"> <div class="errors"> <span v-if="errors.has('inputValue')">{{errors.first('inputValue')}}</span> </div> </form> </div> ``` 通过这个例子,我们可以看到,在 Vue Validator 中自定义校验是非常简单的。只需要定义一个自定义校验对象,并在 validations 中使用即可。通过自定义校验对象,我们可以实现各种复杂的校验逻辑,方便快捷地完成表单校验。 ### 回答3: vue validator是vue.js的一个插件,用于表单数据的校验。vue validator提供了常用的校验规则,如必填、邮箱、手机号等,同时也支持自定义校验。 自定义校验是基于validator.js进行封装的,因此在使用自定义校验时,需要先了解validator.js中支持的校验规则。 首先,在vue组件中引入validator.js和vue validator插件: ```javascript import validate from 'validator'; import VeeValidate, { Validator } from 'vee-validate'; import zh_CN from 'vee-validate/dist/locale/zh_CN'; Vue.use(VeeValidate); Validator.extend('customRuleName', { getMessage: (field, args) => { return `自定义校验错误信息`; }, validate: (value, args) => { // 校验逻辑 return true/false; }, }); ``` 以上代码中,通过Validator.extend方法定义了一个自定义校验规则‘customRuleName’,该规则接收两个参数,分别是getMessage和validate。 getMessage是用于定义该规则的校验失败后的错误信息,可以接收两个参数,分别是校验字段的名称和自定义规则的参数。 validate是定义该规则的校验逻辑,同样接收两个参数,分别是校验字段的值和自定义规则的参数。 在以上代码中,自定义校验规则的参数是args,可以根据规则需要自行指定。 自定义规则定义完成后,只需要在vue组件中使用指定规则即可。在表单中添加属性‘v-validate:规则名称=""’即可使用自定义规则。 例如: ```javascript <input type="text" name="phone" v-model="phone" v-validate:customRuleName=""> ``` 以上代码中,该表单字段使用了自定义校验规则‘customRuleName’,当该表单字段值发生变化时,会触发vue validator校验逻辑,如果校验不通过,则会自动显示‘getMessage’方法返回的错误信息。 自定义校验在vue表单开发中扮演着非常重要的角色,可以满足各种复杂的业务场景需求。但需要注意,在使用自定义校验时一定要严谨,保证校验逻辑的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值