iview中动态表单验证,:rules如何验证input输入数字问题?

发布于 2022-09-05 07:27:12 字数 434 浏览 29 评论 0

如题,如何动态验证input输入数字问题?

`<Form-item :label="item.name" :prop="'items.' + index+ '.tagsubmitvalue'" :key="item.id" v-if="item.tagtype == 1 && item.isnumber == 1" :rules="{type: 'number',required:true,pattern:/^[a-z0-9]+$/,message:'请输入数字',trigger:'change'}">
        <Input v-model="item.tagsubmitvalue" placeholder="请输入数字" style="width: 300px" number></Input></Form-item>`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

叶落知秋 2022-09-12 07:27:12

我来补充一下,也是看的async-validator的校验规则,写法举例如下:

people: [
    { required: true, message: '请输入扫码解锁人数', trigger: 'blur' },
    { type: 'number', message: '请输入数字格式', trigger: 'blur', transform(value) {
        return Number(value);
    }}
],

但是要记住,这只是验证数字格式,实际上表单传递的数据格式还是string格式,所以在请求接口的时候仍需要手动去转换Number格式

悍妇囚夫 2022-09-12 07:27:12

iview使用的校验库是async-validator,所以,你可以使用async-validator的校验规则来写自定义的校验方法。async-validator的API文档:https://github.com/yiminghe/a...

举个?:

var descriptor = {
  email: [
    {type: "string", required: true, pattern: schema.pattern.email},
    {validator(rule, value, callback, source, options) {
      var errors = [];
      // test if email address already exists in a database
      // and add a validation error to the errors array if it does
      callback(errors);
    }}
  ]
}

具体iview中校验的过程,可以参考iviewform-item组件的源码查看:
https://github.com/iview/ivie...

不醒的梦 2022-09-12 07:27:12

iview 不是有组件Input-number吗 ? 这个就只允许输数字,如果用input验证的话参考楼上的吧

忘你却要生生世世 2022-09-12 07:27:12

之前我也做过验证,1楼的只有在输入第一个的时候会管用,比如说输入1*2就不会提示。所以我就没有用这种方式,是自己写的验证方法

<!-- 表单验证 -->
表单验证
<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm">
<el-form-item

label="年龄"
prop="age"
:rules="[
  { required: true, message: '年龄不能为空'},
  {validator(rule, value, callback, source, options) {
  var errors = [];
  if (!/^[a-z0-9]+$/.test(value)) {
     
          callback('年龄必须为数字值....');
      } 
        callback(errors);
  
 }}
]"
<el-input type="age" v-model.number="numberValidateForm.age" auto-complete="off"></el-input>

</el-form-item>

<el-form-item label-width="100px">

<el-button type="primary" @click="submitForm('numberValidateForm')">提交</el-button>
<el-button @click="resetForm('numberValidateForm')">重置</el-button>

</el-form-item>
</el-form>

飘落散花 2022-09-12 07:27:12

可以动态改变required 的布尔值么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文