vue iview实现Select远程搜索为选择匹配值失去焦点不清空输入值(项目记录)

刚开始的思路是使用v-model进行双向数据绑定,结果发现这样做之后无法删除输入值。。

详细查看了iview api后看到了allow-create属性,输入的时候创建新匹配项再用css将之隐藏,理论上就可以了吧。

以下就是实践代码,幸运的是可以满足需求

css部门:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ant Design Vue 的 `<a-select>` 组件支持远程搜索和可输入字符的功能,可以通过设置其 `filter-option` 属性来实现。具体实现步骤如下: 1. 设置 `<a-select>` 的 `filter-option` 为自定义函数,该函数接收两个参数:输入搜索关键词和选项对象,返回一个布尔表示该选项是否符合搜索条件。 ```html <a-select v-model="value" :filter-option="filterOption" :remote="true" :allow-clear="true" :show-search="true" :default-active-first-option="false" :loading="loading" :placeholder="'请输入搜索关键词'" > <a-select-option v-for="item in options" :key="item.value" :value="item.value" >{{ item.label }}</a-select-option> </a-select> ``` ```javascript data() { return { value: '', options: [], loading: false, } }, methods: { filterOption(input, option) { return option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 }, async searchOptions(value) { this.loading = true // 调用远程接口获取选项列表 this.options = await someApi.getOptions(value) this.loading = false }, }, watch: { value(newValue) { if (newValue) { this.searchOptions(newValue) } else { this.options = [] } }, } ``` 2. 设置 `<a-select>` 的 `remote` 属性为 `true`,表示开启远程搜索功能。 3. 设置 `<a-select>` 的 `allow-clear` 属性为 `true`,表示允许清空选择的选项。 4. 设置 `<a-select>` 的 `show-search` 属性为 `true`,表示显示搜索框。 5. 设置 `<a-select>` 的 `default-active-first-option` 属性为 `false`,表示不默认选中第一项选项。 6. 设置 `<a-select>` 的 `loading` 属性为 `true`,表示正在加载选项列表。 7. 设置 `<a-select>` 的 `placeholder` 属性为提示用户输入搜索关键词的占位符。 8. 在组件的 `methods` 中定义 `filterOption` 方法,该方法根据输入搜索关键词和选项对象判断该选项是否符合搜索条件。 9. 在组件的 `methods` 中定义 `searchOptions` 方法,该方法调用远程接口获取选项列表,并将结果保存到组件的 `options` 属性中。 10. 在组件的 `watch` 中监听 `value` 的变化,当 `value` 不为空时调用 `searchOptions` 方法获取选项列表,否则清空选项列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值