web前端关于VUE2.0框架使用Element UI el-autocomplete 整合 BMap 关键字提示输入功能中输入框自动填充下拉框数据的使用和问题总结

       web前端关于VUE2.0框架使用Element UI el-autocomplete 整合 BMap 关键字提示输入功能中输入框自动填充下拉框数据的使用和问题总结

HTML代码:
<el-form-item label="地理位置" prop="location">
  <el-input 
    v-model="currV.location" 
    placeholder="地理位置" 
  />
  <!-- 此处map_input与百度地图自动填充API关联 -->
  <el-autocomplete
    id="map_input"
    popper-class="my-autocomplete"
    v-model="currV.location"
    :trigger-on-focus="true"
    :fetch-suggestions="querySearch"
    placeholder="请输入设备地址"
    @select="handleSelect">
    <template slot-scope="{ item }">
      <div class="name">{{ item.value }}</div>
      <span class="addr">{{ item.address }}</span>
    </template>
  </el-autocomplete>
</el-form-item>
methods:{
	...,
	querySearch(queryString, cb) {
	  var searchList = this.searchList;
	  var results = (
	    queryString 
	    ? searchList.filter((queryString) => {
	      return (searchList) => {
	        return (searchList.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
	      }
	    }) 
	    : searchList
	  );
	  // 调用 callback 返回建议列表的数据
	  cb(results);
	},
}

以下为下拉框填充数据加载代码:

let ac = new BMap.Autocomplete({ //建立一个自动完成的对象
  input: "map_input",    //对应的id
  keyword: 'value',
  onSearchComplete: (e) => {
    that.searchList = e.Kr.map(item => {
      const { province, city, district, street, business } = item;
      return {
        address: province + city + district + street,
        value: business
      }
    });
  },
});
// *** 划重点 ***
// 一定要加一下代码设置input初始值,否则在执行这个函数后,会将el-autocomplete组件中的输入框值清空
ac.setInputValue(row.location)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Element UI el-autocomplete 是一个自动完成输入框组件,可以帮助用户输入并从预设的选项选择。 要使用 el-autocomplete 组件,首先需要引入 Element UI 的样式和 JavaScript 文件。然后在您的 Vue 组件使用 el-autocomplete 组件即可。 以下是一个简单的示例代码,展示如何使用 Element UIel-autocomplete 组件: ```html <template> <div> <el-autocomplete v-model="selectedValue" :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" ></el-autocomplete> </div> </template> <script> export default { data() { return { selectedValue: '', options: ['选项1', '选项2', '选项3', '选项4'] }; }, methods: { querySearch(queryString, cb) { const results = queryString ? this.options.filter(option => option.includes(queryString)) : this.options; // 模拟异步请求,可以根据实际情况进行调整 setTimeout(() => { cb(results); }, 200); }, handleSelect(value) { console.log('Selected value:', value); } } }; </script> ``` 在上面的代码,我们通过 `v-model` 指令将用户选择的值绑定到 `selectedValue` 变量上。通过 `fetch-suggestions` 属性指定一个函数来获取匹配的选项列表,这里我们使用 `querySearch` 方法来实现自定义的搜索逻辑。`placeholder` 属性用于设置输入框提示文本。通过 `@select` 事件监听选择事件,并在 `handleSelect` 方法处理选择事件。 以上是一个基本的使用示例,您可以根据自己的需求进行定制和扩展。希望能对您有所帮助!如果您还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值