【问题标题】:How to trigger blur event of "select" using element-ui and vuejs after selecting an option?选择选项后如何使用 element-ui 和 vuejs 触发“选择”的模糊事件?
【发布时间】:2018-10-12 08:32:25
【问题描述】:

我正在使用 element-ui 和 vuejs。 我有一个看起来像这样的选择元素

<el-form-item label="City" prop="city">
     <el-select 
            v-model="form.city" 
            multiple 
            filterable
            remote
            auto-complete = "address-level2"
            no-match-text = "No data found"
            :remote-method = "remoteMethod"
            :loading = "loading"
            placeholder="Select City">
          <el-option
            v-for = "(item,index) in cities"
            :key = "index"
            :label = "item.name"
            :value = "item.key"
          ></el-option>
     </el-select>
</el-form-item>

现在我想在用户选择一个选项后触发此选择的模糊事件,以便下拉选项折叠。

这是我的远程方法

remoteMethod: _.throttle(function(query) {
        this.loading = true;
        axios({
            method: 'get',
            url: someUrl
        }).then(response =>{
            if(response.data.status === false){
                this.$notify.error({
                    title: 'Error',
                    message: response.data.message
                });
            }
            else if(response.data.status === true && response.data.data.length != 0){
                this.loading = false;
                this.cities = response.data.data;
            }
        })            
    }, 1500),

【问题讨论】:

    标签: vue.js element-ui


    【解决方案1】:

    你可以像 ref="select1" 一样在组件上设置 ref 属性

    然后你可以通过 this.$refs 调用 focus 或 blur 方法

    就像:this.$refs.select1.focus()

    http://element.eleme.io/#/en-US/component/select

    【讨论】:

      【解决方案2】:

      如果您想在用户选择一个选项后隐藏下拉选项,只需在事件 change 上重置从远程获取的数据。

      示例:

      选择值改变时调用方法resetData()

      <el-form-item label="City" prop="city">
          <el-select 
            @change="resetData"
            v-model="form.city" 
            multiple 
            filterable
            remote
            auto-complete = "address-level2"
            no-match-text = "No data found"
            :remote-method = "remoteMethod"
            :loading = "loading"
            placeholder="Select City">
              <el-option
                  v-for = "(item,index) in cities"
                  :key = "index"
                  :label = "item.name"
                  :value = "item.key">
              </el-option>
          </el-select>
      </el-form-item>
      

      从远程获取重置数据:

      resetData() {
          this.cities = [];
      },
      

      【讨论】:

        猜你喜欢
        • 2021-06-20
        • 2017-04-10
        • 1970-01-01
        • 1970-01-01
        • 2019-05-13
        • 1970-01-01
        • 2020-12-28
        • 2021-06-27
        • 1970-01-01
        相关资源
        最近更新 更多