当前位置:   article > 正文

AntDesignVue中form表单取值(v-decorator)_v-decorato a-select表单取值

v-decorato a-select表单取值
  • 通过 v-decorator 进行表单验证

rules:校验规则设置(required是否必填,max最大长度,min最小长度,message提示信息,parttern正则匹配,validator验证器)

validateTrigger:触发校验(一般为change,blur等)

initialValue:设置初始值

  1. //内置验证规则
  2. <a-form-item label="课程名称" v-bind="formItemLayout">
  3. <a-input
  4. placeholder="课程名称"
  5. v-decorator="['name', {
  6. rules: [{ required: true, max: 50, message: '必填项,最大50字符' }] }
  7. initialValue:"数学"
  8. ]" />
  9. </a-form-item>
  10. //自定义验证规则01
  11. <a-form-item>
  12.   <a-input
  13. size="large"
  14.     type="text"
  15.     placeholder="手机号"
  16.     v-decorator="['mobileNumber', {
  17. rules:[{required: true, pattern: /^1[34578]\d{9}$/, message: '请输入正确的手机号'}],
  18. validateTrigger: 'change'
  19. }]">
  20.   </a-input>
  21. </a-form-item>
  22. //自定义验证规则02
  23. <a-form-item v-bind="formItemLayout" label="手机号码">
  24. <a-input
  25. placeholder="手机号码"
  26.     v-decorator="['mobileNumber',{
  27. rules:[{required:true,max:11,message:'请输入正确格式的手机号码',validator: MobileNumberValidator}]}]" />
  28. </a-form-item>
  29. //在methods中设定方法
  30. // 手机号验证
  31. MobileNumberValidator (rule, value, callback) {
  32. const idcardReg = /^1(3|4|5|6|7|8|9)\d{9}$/
  33. if (!idcardReg.test(value)) {
  34. // eslint-disable-next-line standard/no-callback-literal
  35. callback('非法格式')
  36. }
  37. // Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
  38. callback()
  39. }
  • 下拉选择框的 labelInValue 属性

通常情况下,通过this.form.getFieldValue("xxx"),只能获取一个数组包含value值,形如["A","B"],而通过labelInValue属性可以得到[{key: "Aid",label: "Aname"},{{key: "Bid",label: "Bname"}}]

  1. <a-form-item label="ABC" v-bind="formItemLayout">
  2. <a-select
  3. labelInValue
  4. placeholder="请选择"
  5. v-decorator="['courseTeacherList', {
  6. rules: [{ required: true, message: '必填项,请选择' }] }]"
  7. >
  8. <a-select-option v-for="item in List"
  9. :key="item.id"
  10. :value="item.id">{{ item.name }}</a-select-option>
  11. </a-select>
  12. </a-form-item>
  • 通过 v-decorator 进行内置的双向绑定
  1. //获取一个输入控件的值
  2. this.form.getFieldValue("xxx");
  3. //获取一组输入控件的值,如不传入参数,则获取全部组件的值
  4. this.form.getFieldsValue(["xxx","yyy"]);
  5. this.form.getFieldsValue();
  6. //设置一组输入控件的值
  7. this.form.setFieldsValue({
  8. xxx:res.result["xxx"],
  9. yyy:res.result["yyy"],
  10. })
  11. //设置一组输入控件的值 加了labelInValue属性
  12. this.form.setFieldsValue({
  13. userName:{
  14. label:res.result["userName"],
  15. key:res.result["userNameId"]
  16. }
  17. })
  18. //关闭表单清空表单数据
  19. this.form.resetFields();
  20. //提交表单获取数据
  21. //通过this.form.validateFields函数进行表单验证以及数据获取
  22. handleSubmit () {
  23. this.form.validateFields((err, values) => {
  24. if (!err) {
  25. this.$message.error('保存成功')
  26. }
  27. })
  28. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/115494
推荐阅读