vue表单验证rules无效,rules动态选择,rules动态校验,rules对象嵌套校验

这篇具有很好参考价值的文章主要介绍了vue表单验证rules无效,rules动态选择,rules动态校验,rules对象嵌套校验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题描述

这里由一个动态切换规则校验引发的一些问题,整理了下,如下文所示。

1.动态绑定规则校验

这里有个需求就是,动态切换radio,对input输入框校验,界面如下

vue表单验证rules无效,rules动态选择,rules动态校验,rules对象嵌套校验
vue表单验证rules无效,rules动态选择,rules动态校验,rules对象嵌套校验
在网上找了一圈,用了第一种方法来解决,动态添加验证规则,方法如下

          <el-form-item label="授权密匙(Key)" v-if="form.value.platformType === 2" prop="value.hundredApiKey" :rules="form.value.platformType === 2 ? rules.hundredApiKey:[{ required: false}]">
            <el-col :span="10">
              <el-input v-model="form.value.hundredApiKey" placeholder="请输入授权密匙(Key)" />
            </el-col>
          </el-form-item>

通过if判断platformType是否等于2,然后添加规则,rules.hundredApiKey和required: false,后面看网上说的,直接通过v-if就能实现动态的效果,不需要后面再通过:rules方式添加,不显示控件该规则默认就失效。

      // 表单校验
      rules: {
        hundredApiKey: [{ required: true, message: "快递100 API Key不能为空", trigger: ['blur','change']}]
      }

2.rules与form绑定的问题

这里又遇到了其他问题,就是输入明明有值,硬是提示,输入的值不能为空,可按如下步骤排除:

:model="ruleForm" 绑定的ruleForm值是否挂载成功并且操作的是否是这个表单。
:rules="rules" 校验的规则格式绑定的rules是否定义并且格式正确为对象数组。
el-form-item中的prop="name"是否和rules中的name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, ], 的名称一致,两个name是相同的,element的校验就是根据这个prop找对应的输入框的。
<el-input v-model="ruleForm.name"></el-input> 的v-model="ruleForm.name"确保对象ruleForm中有name这个属性!

注意:

如果你的rules和form绑定的数据层级是一样的话,如下所示

<el-form :model="form" :rules="rules" ref="form">
    <el-form-item label="选项:" prop="name">
      <el-select v-model="form.name">
        <el-option label="测试一" value="1"></el-option>
        <el-option label="测试二" value="2"></el-option>
      </el-select>
    </el-form-item>
</el-form>
 
form:{
	name:'',
},
rules:{
    name:[{required: true, message: '请选择', trigger: 'blur'}]
}

上面的绑定就没问题,我这用的是如下的格式

form:{
	a:{
		name:'',
	}
},

a对象里有个name的属性,用上面的方式绑定,死活不行,正确的方式如下,有两种解决方案:

解决方案1:在规则定义与绑定时,规则结构 与 数据结构一致

<el-form :model="form" :rules="rules" ref="form">
    <el-form-item label="选项:" prop="a.name">
      <el-select v-model="form.a.name">
        <el-option label="测试一" value="1"></el-option>
        <el-option label="测试二" value="2"></el-option>
      </el-select>
    </el-form-item>
</el-form>
 
form:{
	a:{
		name:'',
	}
},
rules:{
    'a.name':[{required: true, message: '请选择', trigger: 'blur'}]
}

解决方案2:将表单绑定的数据对象修改成对象的子对象。

<el-form :model="form.a" :rules="rules" ref="form">
    <el-form-item label="选项:" prop="name">
      <el-select v-model="form.a.name">
        <el-option label="测试一" value="1"></el-option>
        <el-option label="测试二" value="2"></el-option>
      </el-select>
    </el-form-item>
</el-form>
 
form:{
	a:{
		name:'',
	}
},
rules:{
    name:[{required: true, message: '请选择', trigger: 'blur'}]
}

3.rules校验使用v-if无效

上面的表单里如果有多个组件,只有一个有效,其他的校验规则全都无效。

<el-form-item label="选项:" prop="name">

这个问题,搞了我好久,后面调试的过程中发现了这个规律,在网上找出了答案,只需要添加key属性就行了文章来源地址https://www.toymoban.com/news/detail-418620.html

<el-form-item label="选项:" prop="name" key="name">

到了这里,关于vue表单验证rules无效,rules动态选择,rules动态校验,rules对象嵌套校验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue中的rules表单校验规则使用方法 :rules=“rules“

    :ref=\\\"dataForm\\\"        // 提交表单时进行校验 :rules=\\\"rules\\\"            // return 下的校验规则 :model=\\\"userForm\\\"  // 绑定表单的值 点击提交时,会先对表单的值进行校验判断,校验通过后,再进行后续操作。 el-form-item 里面使用 prop 属性绑定规则 el-form-item label=\\\"充值金额\\\"  prop=\\\"amo

    2024年02月05日
    浏览(39)
  • element-ui form表单的动态rules校验

    在vue 项目中,有时候可能会用到element-ui form表单的动态rules校验,比如说选择了哪个选项,然后动态显示或者禁用等等。 我们可以巧妙的运用element-ui form表单里面form-item想的校验规则来处理(每一个form-item项都可以单独校验)。 上代码: 重点是这个: :rules=“sqyxForm.jtpslx

    2024年02月15日
    浏览(42)
  • vue表单及遍历表单校验rules以及validator校验器的使用

    为防止用户犯错,尽可能更早地发现并纠正错误。 Element中Form (表单)组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 注意:prop对应表单域 model 字段,使用 validate方法时,该属性是必填的。 目

    2024年02月08日
    浏览(34)
  • 【element-ui】form表单动态修改rules校验项

    在项目开发过程中,该页面有暂存和提交两个按钮,其中暂存和提交必填项校验不一样,此时需要动态增减必填项校验 ,解决方法如下: 增加rules校验项 删除rules校验项

    2024年02月04日
    浏览(49)
  • vue+element多层表单校验prop和rules

    核心点:外层循环是item和index,内层循环是item2和index2 如果都是定义的同一个属性名 外层循环得写 :prop=\\\"\\\'block.\\\'+index+\\\'.numerical\\\'\\\" 同理内层循环就得写 :prop=\\\"\\\'objectSpecs.\\\'+ index2 + \\\'.numerical\\\'\\\" 校验函数方法 :rules=\\\"getRules(item2, item2.name)\\\"

    2024年02月13日
    浏览(30)
  • Vue rules表单验证失效

    这个题目可能表达不明白,就是表达内的数据都填写了通过rules验证发现表单内根本没有数据,表单是空的。 这是表单 类型是insertBook,填写基本的图书信息 这是写在data中的insertBook类型数据 以及rules验证规则 这是method中的插入书籍请求 我仔细地检查了每一个标签 并没有落

    2023年04月25日
    浏览(35)
  • vue rules 表单验证 选中数量

    Vue表单验证是一种验证用户输入的方式,可以确保用户输入的数据符合特定的规则和要求。 在Vue中,可以使用内置的表单验证规则或自定义验证规则来验证用户的输入。 下面是一个示例,展示如何使用Vue的规则表单验证和计算选中数量的例子: HTML代码: JavaScript代码: 在上

    2024年01月22日
    浏览(33)
  • vue自定义rules,对input表单输入框校验重复值

    对input表单输入框检验重复值,如对如下图参数名进行校验重复值  el-form-item添加属性:rules=\\\"rules.paramname\\\" 1.写一个rules 2.Method里面添加如下方法 rule:指的是表单中rules属性 value:指的表单输入框中输入的值 callback:回调函数(再次调用校验函数)

    2024年02月11日
    浏览(36)
  • for循环遍历的`form表单组件`rules规则校验失效问题——下拉框选择之后还是报红---亲测有效

    问题:   大概的效果就是这种, for循环选择之后还是还是报红 看文章之前 :  先检查  model  rules pops 有没有判定好 解决:    参考了他的 for循环遍历的`form表单组件`rules规则校验失效问题——输入内容后依然提示必填,亲测有效——基础积累_a-form-model的validatefield方法循环遍

    2024年02月07日
    浏览(36)
  • vue表单验证rules以及validator验证器的使用

    为防止用户犯错,尽可能更早地发现并纠正错误。 Element中Form (表单)组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 注意:prop对应表单域 model 字段,使用 validate方法时,该属性是必填的。 目

    2024年02月03日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包