【问题标题】:Element UI autocomplete no results元素 UI 自动完成没有结果
【发布时间】:2020-06-15 18:57:21
【问题描述】:

我在我的项目中使用element UI autocomplete component

当输入没有产生结果时,我想显示 no results 消息。
在其他项目中,我将其作为建议框中的一个选项(不可选择):

但是,使用 element-ui 自动完成,搜索图标消失后,下拉菜单也会消失:

有了这个组件,我无法做到这一点。有什么想法吗?

我的代码如下所示:

模板:

<el-form ref="addressForm" :inline="true" :model="formData">
    <el-form-item prop="city">
        <el-autocomplete
                class="inline-input"
                v-model="formData.cityInput"
                :fetch-suggestions="getCities"
                placeholder="City"
                :trigger-on-focus="false"
                :clearable="true"
                @select="handleSelectCity"
                @clear="clearCity"
                size="small"
        ></el-autocomplete>
    </el-form-item>
        :
        :
    <el-form-item>
        <el-button type="primary" @click="onSubmit" size="small">
            Search
        </el-button>
    </el-form-item>
</el-form>

脚本:

export default {
    data() {
        return {
            formData: {
                cityInput: "",
                city: "",
                :
                :
            },
        }
    },

    methods: {
        getCities(query, callback) {
            this.clearCity();

            // Ajax call to obtain results for autocomplete
            axios.get(
                "/cities", {
                    query: query
                })
                .then(
                    response => {
                        callback(response.data);
                    }
                );

        },

        handleSelectCity(item) {
            this.formData.city = item.value;
        },

        clearCity() {
            this.formData.city = "";
        },

        :
        :
        :
    }
};

PHP 代码:(Laravel)

public function getCities($query)
{
    $res = DB::connection('mainDb')
        ->table('offices')
        ->where('city', 'like', $query . '%')
        ->select('city AS value')
        ->distinct()
        ->get();

    return $res;
}

【问题讨论】:

  • 请分享一些代码
  • 也许您可以使用键和标签推送 1 个项目,(无结果),如果已选择,则可以通过键检查是否已选择,如果键来自无结果项目,则可以清除输入,有什么意义?
  • @BoussadjraBrahim,完成。
  • @Ata,不,这个想法是用户将无法选择“无结果”选项。

标签: javascript php vue.js element-ui element-io


【解决方案1】:

您可以使用v-select 实现此行为。有一个filtering option,因此您可以选择选项或使用自动完成输入它。

有两个属性可以控制“无结果”的情况:no-match-text(过滤没有结果)和no-data-text(选择中没有选项)。

【讨论】:

猜你喜欢
  • 2013-12-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 2011-06-10
  • 2018-06-02
相关资源
最近更新 更多