美文网首页
el-autocomplete 必须点选结果

el-autocomplete 必须点选结果

作者: Wind哥 | 来源:发表于2020-01-08 10:06 被阅读0次

    有一个项目,输入时候提示可用项,但是必须用户选择下面的可用项;可能有人会说为啥不用下拉框,嗯,项目太多了,下拉框承载不了,而且操作不够快捷。

    然而,在autocomplete里设必填(required)的话,只要文本框有值就通过了,不能验证到是否用户点选的。后用了个很简单(自定义验证)的方法实现了。废话不多说,上代码

    模板:没什么特别

        <el-autocomplete
                v-model="username"
                name="username"
                class="inline-input"
                placeholder="请输入账号"
                :highlight-first-item="true"
                :trigger-on-focus="false"
                :fetch-suggestions="getUser"
                @select="handleSelectUser"
              />
    

    js

    export default {
      data() {
        const validateUsername = (rule, value, callback) => {
          if (this.authz.id === 0) {
            callback(new Error('请选择账号!'))
          } else {
            callback()
          }
        }
        return {
          authzRules: {
            username: [
              { trigger: 'blur,change', message: '请选择账号!', validator: validateUsername },
              { trigger: 'blur,change', message: '请选择账号!', required: true }
            ]
          },
          authz: { // authz role form
            id: 0,
            username: undefined,
            roleIds: []
          }
       }
    }
    

    其中
    规则1,就是判断下没id时候(点选时候通过handleSelectUser设置authz的id)就是没选账号
    规则2,只是为了保持页面样色一致(required会生成个必填的*号)

    相关文章

      网友评论

          本文标题:el-autocomplete 必须点选结果

          本文链接:https://www.haomeiwen.com/subject/ryvjactx.html