校验方式
表单校验只需在相应控件的v-decorator中声明一系列校验规则(rules)即可。
示例如下:
<a-formid="formLogin"class="user-layout-login"ref="formLogin":form="form"@submit="handleSubmit"><a-form-item><a-inputsize="large"type="text"placeholder="请输入用户名"v-decorator="['username',{rules: [{ required: true, message: '请输入用户名' }], validateTrigger: 'change'}]"><a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/></a-input></a-form-item><a-form-item><a-inputsize="large"type="password"autocomplete="false"placeholder="请输入密码"v-decorator="['password',{rules: [{ required: true, message: '请输入密码' }], validateTrigger: 'blur'}]"><a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/></a-input></a-form-item><a-form-item v-if="showCaptcha">// 自定义校验<a-inputsize="large"class="captcha-input"placeholder="请输入验证码"autocomplete="false"v-decorator="['captchaInput', {rules: [{required: true, message: '请输入验证码'}, { validator: validCaptcha }], validateTrigger: 'blur'}]"></a-input><a-buttonid="btn_captcha"@click="createCode"class="captcha-code">{{checkCode}}</a-button></a-form-item><a-form-item style="margin-top:24px"><a-buttonsize="large"type="primary"htmlType="submit"class="login-button":loading="state.loginBtn":disabled="state.loginBtn">确定</a-button></a-form-item></a-form>
常见校验规则
- required 该控件必须输入
- min 该控件值长度必须大于指定值
- max 该控件值长度必须小于指定值
- pattern 该控件值必须满足指定的正则表达式
- 自定义校验函数
validCaptcha (rule, value, callback) {const errors = [] // 返回的错误结果,如果该数组为空说明无校验错误if(!!value && this.checkCode.toUpperCase() != value.toUpperCase()) {errors.push('验证码输入错误') // 如果校验错误则将错误消息添加到errors数组}callback(errors) // callback为校验框架的回调函数,此处必须将校验结果作为参数执行回调函数}
更多校验方法
请参见此处async-validator
