校验方式

表单校验只需在相应控件的v-decorator中声明一系列校验规则(rules)即可。
示例如下:

  1. <a-form
  2. id="formLogin"
  3. class="user-layout-login"
  4. ref="formLogin"
  5. :form="form"
  6. @submit="handleSubmit"
  7. >
  8. <a-form-item>
  9. <a-input
  10. size="large"
  11. type="text"
  12. placeholder="请输入用户名"
  13. v-decorator="[
  14. 'username',
  15. {rules: [{ required: true, message: '请输入用户名' }], validateTrigger: 'change'}
  16. ]"
  17. >
  18. <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/>
  19. </a-input>
  20. </a-form-item>
  21. <a-form-item>
  22. <a-input
  23. size="large"
  24. type="password"
  25. autocomplete="false"
  26. placeholder="请输入密码"
  27. v-decorator="[
  28. 'password',
  29. {rules: [{ required: true, message: '请输入密码' }], validateTrigger: 'blur'}
  30. ]"
  31. >
  32. <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
  33. </a-input>
  34. </a-form-item>
  35. <a-form-item v-if="showCaptcha">
  36. // 自定义校验
  37. <a-input
  38. size="large"
  39. class="captcha-input"
  40. placeholder="请输入验证码"
  41. autocomplete="false"
  42. v-decorator="['captchaInput', {rules: [{required: true, message: '请输入验证码'}, { validator: validCaptcha }], validateTrigger: 'blur'}]"
  43. >
  44. </a-input>
  45. <a-button
  46. id="btn_captcha"
  47. @click="createCode"
  48. class="captcha-code"
  49. >{{checkCode}}</a-button>
  50. </a-form-item>
  51. <a-form-item style="margin-top:24px">
  52. <a-button
  53. size="large"
  54. type="primary"
  55. htmlType="submit"
  56. class="login-button"
  57. :loading="state.loginBtn"
  58. :disabled="state.loginBtn"
  59. >确定</a-button>
  60. </a-form-item>
  61. </a-form>

常见校验规则

  1. required 该控件必须输入
  2. min 该控件值长度必须大于指定值
  3. max 该控件值长度必须小于指定值
  4. pattern 该控件值必须满足指定的正则表达式
  5. 自定义校验函数
    1. validCaptcha (rule, value, callback) {
    2. const errors = [] // 返回的错误结果,如果该数组为空说明无校验错误
    3. if(!!value && this.checkCode.toUpperCase() != value.toUpperCase()) {
    4. errors.push('验证码输入错误') // 如果校验错误则将错误消息添加到errors数组
    5. }
    6. callback(errors) // callback为校验框架的回调函数,此处必须将校验结果作为参数执行回调函数
    7. }

    更多校验方法

    请参见此处async-validator