element-plus的form表单验证Prop和Rules设置约定

这篇具有很好参考价值的文章主要介绍了element-plus的form表单验证Prop和Rules设置约定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用表单验证过程中遇到深层对象(即嵌套对象)和数组或动态创建数组对象时验证不再起作用或者出现错误。

官网的说明“Form 组件提供了表单验证的功能,只需为 rules 属性传入约定的验证规则,并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 更多高级用法可参考 async-validator。”轻描淡写,看了asyncValidator也没有搞清楚element-plus的rules到底该如何定义。

说明:Form组件包含rules属性,FormItem 组件包含prop和rules属性。Form的rules如不设置则不会触发任何验证,FormItem如不设置则当前item不会触发验证。

默认约定的验证规则是通过formitem设置的prop作为path去form绑定的model和rules中查找对应的值和验证规则。如果不能从model或rules找到对应的属性则不会触发验证机制;如果formitem额外指定了rules则使用额外指定的rules做为验证规则,而忽略从form的rules中查找规则。所以如果formitem同时指定了prop和rules则form的rules可以任意设置。

基于以上规则rules的结构定义必须与model完全匹配,否则必须额外指定rules验证才能生效。

prop作为查找model和rules的路径那到底该怎么定义?关于prop作为path的解释参考

举个例子:

{
    const formModel = ref({
        name:"",
        age:0,
        skills:[{name:"",level:0}]
    })

    const rules:{
        name:[{max:8,required:true,message:"name is required",trigger:"blur"}}],
        nameAgain:[{max:8,required:true,message:"name is required",trigger:"blur"}}],
        skills:{
            name:[{max:20,requeired:true,message:"skill name is required",trigger:"blur"}]
            level:[{requeired:true,message:"skill level is required",trigger:"blur"}]
        }
    }
}
<el-form  abel-width="auto" ref="formRef" :rules="rules" :model="formModel"> 
    <el-form-item prop="name" label="角色名称">
         <el-input v-model="model.name" maxlength="16" clearable></el-input>
    </el-form-item>
    <el-form-item label="角色年龄">
         <el-input v-model="model.age" clearable></el-input>
    </el-form-item>
    <el-form-item prop="skills[0].name" :rules="rules.skills.name" label="第一个技能名称">
         <el-input v-model="model[0]!.name" clearable></el-input>
    </el-form-item>
    <el-form-item prop="skills.0.level" :rules="rules.skills.level" label="第一个技能等级">
         <el-input v-model="model[0]!.level" clearable></el-input>
    </el-form-item>
</el-form>

单独指定formItem的rules:

<el-form-item prop="name" label="角色名称">可以定义成<el-form-item prop="name" :rules= "rules.nameAgain" label="角色名称">  此时通过model.name查找值,通过rules.nameAgain查找验证规则。 

模型的数组结构skills验证时通过props ="skills[0].name" 或props ="skills.0.name"来定义path都是有效的,但无法正确获取到rules中对应的规则;并且也不会去定义和model结构一直的数组,所以需要单独设置:rules="rules.skills.name"。文章来源地址https://www.toymoban.com/news/detail-568369.html

到了这里,关于element-plus的form表单验证Prop和Rules设置约定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue+element多层表单校验prop和rules

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

    2024年02月13日
    浏览(24)
  • Element ui plus Form 表单验证失败后,自动滚动到失败的位置(validate)(scrollToField)

    对于表单验证失败后,想自动定位到失败的位置  1.首先发起表单验证,失败后拿到组件失败的回调参数 valid:返回一个boolean类型 ValidateFieldsError:返回失败的组件信息,如下  当valid为false时,利用scrollToField() 滚动到相应的错误位置处 代码如下:

    2024年02月11日
    浏览(23)
  • vue3使用el-form实现登录、注册功能,且进行表单验证(Element Plus中的el-form)

    简介:Element Plus 中的 el-form 是一个表单组件,用于快速构建表单并进行数据校验。它提供了丰富的表单元素和验证规则,使表单开发变得更加简单和高效。可以搭配el-dialog实现当前页面的登录、注册页 ,这两天在vue3中用到了表单登录,特意记录一下,这里没有封装,直接使

    2024年02月07日
    浏览(41)
  • el-form表单el-form-item prop一次验证两个值

    1.表单添加两个框,prop写上 2.data里写,验证规则添加validator: this.validateFields 3.validateFields设置

    2024年02月10日
    浏览(27)
  • element - - - - - form表单rules初始化校验飙红?

    通过form组件属性配置解决(validate-on-rule-change=“false”)

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

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

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

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

    2024年02月04日
    浏览(41)
  • element-plus表单校验

    el-form标签上定义rules属性进行双向绑定  :rules=\\\"loginRules\\\"  ,loginRules这个校验规则定义在data数据里,(1)要注意的是loginRules里面定义username和password需要与表单数据绑定的参数同名。(2)username: [{ required: true, message: \\\'账号不能为空哦\\\', trigger: \\\'blur\\\' }] , 其中required校验必填不

    2024年02月11日
    浏览(21)
  • vue3+element-plus 表单输入框无法输入

    Element-Plus在进行reactive在对登录用户密码输入输入时失效,最后发现是el-form,在进行ref和model进行绑定的时候,绑定的属性名称都是一致的,导致界面无法输入,如下图所示都绑定的是:loginForm,代码入下图所示: 此时界面操作输入框,是无法编辑的: 而el-form修改的model=\\\"logi

    2024年02月11日
    浏览(32)
  • vue3 element-plus el-form的二次封装

    form表单的二次封装 vue3 element-plus el-form的二次封装 属性名 类型 默认值 说明 data Array [] 页面展示数据内容 onChange Function false 表单事件 bindProps Object {} 表单属性 formRef Object {} 表单ref ruleForm Object {} 数据

    2024年02月13日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包