当前位置: 首页 > 知识库问答 >
问题:

javascript - Element UI 的 autocomplete 组件选择后导致表单校验不通过如何解决?

亢雅懿
2024-07-06

在表单中使用了autocomplete来实现输入和选择功能,但是当我选择选项时,会导致表单校验失败,即使输入框中有文字,依旧会校验失败,想问下该如何解决
组件代码:

<el-form-item label="用户名" prop="userName">
        <el-autocomplete
            class="userNameInput"
            v-model="selectUserInfo"
            :fetch-suggestions="querySearch"
            placeholder="选择或输入用户名"
            @select="selectOption"
            @blur="onBlur"
        ></el-autocomplete>
      </el-form-item>

规则代码:

rules: {
        userName: [{required: true, message: '请输入用户名', trigger: 'blur'}],
        password: [{required: true, message: '请输入密码', trigger: 'blur'}]
      },

函数:

selectOption(params) {
      console.log(this.selectUserInfo)
      this.loginForm.userName = params.userName
      this.loginForm.password = atob(params.password)
    },
    onBlur() {
      console.log('blur')
      console.log(this.loginForm.userName, this.selectUserInfo)
      this.loginForm.userName = this.selectUserInfo
    },

我希望选择后不会触发表单校验失败

共有1个答案

权玉泽
2024-07-06

如果是最后提交的时候,没有办法通过校验。那么检查一下 loginForm.username 是否还是响应式属性。你这样的赋值操作可能会丢失响应式 this.loginForm.userName = params.userName

如果是用户填写时和填写后没有正确的改变 <form-item> 的校验状态,那么检查属性是否被监听之外还需要检查触发的事件类型是否正确。 blurinputchange 对应的是不同的事件, 下拉选择器不一定会有抛出 blur 事件。

为什么v-model绑定的对象属性不是总是响应式?

 类似资料:
  • 本文向大家介绍ElementUI多个子组件表单的校验管理实现,包括了ElementUI多个子组件表单的校验管理实现的使用技巧和注意事项,需要的朋友参考一下 背景 公司项目中所用到的前端框架是Vue.js + ElementUI,因为项目的业务场景中有很多的大表单,但是ElementUI的表单写法对于表单的拆分和校验其实并不是很友好。最初的项目为了方便,常常把多个表单写在一个.vue组件中,这导致单

  • 假设我们有一些s属于同一,当用户点击时,它被选中了。我想添加一个功能,当用户点击已经选中的时,它会被取消选中,即整个将不会选中。我已经搜索了提示使用的方法,method,clearSelection。但问题是,当用户单击已选择的JRadioButton时,它不会生成任何,而该事件是通过单击其他未选择的生成的。

  • 本文向大家介绍Vue2.0表单校验组件vee-validate的使用详解,包括了Vue2.0表单校验组件vee-validate的使用详解的使用技巧和注意事项,需要的朋友参考一下 vee-validate使用教程 本文适合有一定Vue2.0基础的同学参考,根据项目的实际情况来使用,关于Vue的使用不做多余解释。本人也是一边学习一边使用,如果错误之处敬请批评指出* 一、安装 注意:@next,不然是

  • 大佬们,想实现这么个效果,然后下拉框中是可以切换的颜色选择,只想在输入框中用一小块区域来显示颜色变化,请问咋实现呢~求助 希望能得到些实现的灵感和想法~

  • 本篇主要介绍使用 JavaScript 进行表单验证。 表单验证并不是 JavaScript 提供的某种特性,而是结合各种特性达到的一种目的,是需求的产物。 所有线上产品的表单几乎都有验证,如注册时要求“用户名 6-16 位”,验证会由 JavaScript 来完成,通常为了安全性和准确性,服务端会再次做一遍验证。 1. 验证目标 表单用于收集信息,从 HTML 上讲,表单内容使用 form 标签