使用Bootstrap typeahead插件实现搜索框自动补全的配置参数。
示例代码:
<input type="text" id="addr"/>
<input type="text" hidden id="lat"/>
<input type="text" hidden id="lon"/>
API:http://wiki.openstreetmap.org/wiki/Nominatim
需求:通过输入地名自动补全地址信息,选择提示信息后,讲地址经纬度附值给隐藏的input,后提交表单。
var suggestion_source = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace("display_name"),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "http://nominatim.openstreetmap.org/search?format=json&q=%QUERY",
wildcard: '%QUERY',
transform:function(response){
return response;
}
}
});
$('#addr').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: suggestion_source,
display:function(item){
return item.display_name;
},
templates: {
suggestion: function (data) {
return '<p style="text-align: left">' + data.display_name + '</p>';
}
}
});
$('#addr').bind('typeahead:select', function(ev, suggestion) {
$('#lat').val((suggestion.lat));
$('#lon').val((suggestion.lon));
});
$('#referred').click(function () {
var lat = $('#lat').val();
var lon = $('#lon').val();
var name = $('#name').val();
var address = $('#addr').val();
if(name==''||address==''){
$.toast({
text:'请补全信息!',
icon:'error'
})
}
else {
$.ajax({
url:url+'abc',
type:'post',
dataType:'json',
contentType:'application/json',
data:JSON.stringify({
name:name,
address:address,
latitude:lat,
longitude:lon
}),
success:function () {
$.toast({
text:'新建地址成功!',
icon:'success'
})
},
error:function () {
$.toast({
text:'新建地址失败!',
icon:'error'
})
}
})
}
});
默认的display就好,不需要去覆盖
source是配置typehead的数据源
Bloodhound.tokenizers.obj.whitespace("city"),这个稍稍复杂一点,.whitespace("xxx")这个是指取"xxx"这个属性,进行空白分词,以便查询.
比如返回的json,有一个属性叫city,如果有一个具体的city="New York",那么进行了Bloodhound.tokenizers.obj.whitespace("city")之后,无论用户输入New或者York,都能查到,而不用考虑空格.
datumTokenizer: Bloodhound.tokenizers.obj.whitespace("display_name"),
queryTokenizer: Bloodhound.tokenizers.whitespace,有两个这个参数.
datumTokenizer是针对返回结果集的,
queryToken是针对查询参数的.
template是定义每一行option的显示效果的.
transform:对数据格式做转化,如果有需要的话,比如把服务器的某个字段名改掉,或者某个字段进行数学计算
使用Bootstrap typeahead插件实现搜索框自动补全的配置参数。的更多相关文章
- jQuery搜索框自动补全功能插件实现-autocomplete.js
最近用nodeclub实现股票的输入关键字自动补全股票信息进行搜索功能,原先用jQuery-ui,结果jQuery-ui库太大,所以考虑用其他插件,最终选择使用autocomplete.js,控件简单 ...
- 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...
- 四十七 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.elastic.co/guide/en/elasticsearch/reference/current/se ...
- 去掉input密码框自动补全功能
<input name="password" autocomplete="off" hidden> <input type="pas ...
- bootstrap-typeahead 自动补全简单的使用教程
参考链接: 参考1 : https://segmentfault.com/a/1190000006036166参考2 : https://blog.csdn.net/u010174173/articl ...
- autocomplete实现联想输入,自动补全
jQuery.AutoComplete是一个基于jQuery的自动补全插件.借助于jQuery优秀的跨浏览器特性,可以兼容Chrome/IE/Firefox/Opera/Safari等多种浏览器. 特 ...
- bigautocomplete实现联想输入,自动补全
bigautocomplete是一款Jquery插件.用它实现仿搜索引擎文本框自动补全插件功能很实用,使用也很简单,引入了插件之后写几行代码就可以实现,可以灵活设置. 先看效果图: 上图是通过ajax ...
- ES系列十三、Elasticsearch Suggester API(自动补全)
1.概念 1.补全api主要分为四类 Term Suggester(纠错补全,输入错误的情况下补全正确的单词) Phrase Suggester(自动补全短语,输入一个单词补全整个短语) Comple ...
- 第一百八十一节,jQuery-UI,知问前端--自动补全 UI--邮箱自动补全
jQuery-UI,知问前端--自动补全 UI--邮箱自动补全 学习要点: 1.调用 autocomplete()方法 2.修改 autocomplete()样式 3.autocomplete()方法 ...
随机推荐
- sklearn中predict_proba的用法例子(转)
predict_proba返回的是一个n行k列的数组,第i行第j列上的数值是模型预测第i个预测样本的标签为j的概率.所以每一行的和应该等于1. 举个例子 >>> from sklea ...
- 构造方法及方法(重载)与this关键字的使用
一:构造方法的概念: 构造方法是一种特殊的方法,它是一个与类同名的方法.对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化.当类实例化一个对象时会自动调用构造方法. ...
- Go select 死锁引发的思考
Go select 死锁引发的思考 https://mp.weixin.qq.com/s/Ov1FvLsLfSaY8GNzfjfMbg一文引发的延续思考 上文总结 总结一 package main i ...
- Tableau学习step1一Tableau概述
本文首发于博客冰山一树Sankey,去博客浏览效果更好. 一.Tableau优缺点 优点 ·简单易用,只要是会用 EXCEL,几分钟就可掌握 Tableau的基本用法 急速高效 ·结果美观 ·轻松整合 ...
- JZ-059-按之字形顺序打印二叉树
按之字形顺序打印二叉树 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 题目链接: 按之字形 ...
- LeetCode-290-单词规律
单词规律 题目描述:给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非 ...
- 查询 docker 主机的 IP 地址
在 Windows 下查询docker 主机的 IP 地址需要直接去网络中心查找虚拟机的 IP 地址,具体步骤: 进入网络中心 进入适配器更改选项 进入虚拟机 WSL 点击 属性 选中 IPv4 协议 ...
- laravel报错 : No application encryption key has been specified.
创建了新的laravel项目后, 运行提示:No application encryption key has been specified 解决方法: 这个是由于没有配置好 APP_KEY 在终端上 ...
- tensorflow源码解析之common_runtime-session
目录 核心概念 session session_factory 1. 核心概念 session可以认为是一个执行代理.我们在客户端构建计算图,提供输入,然后把计算图丢给session去执行.因此,se ...
- 30 面向对象编程 抽象类 abstract 修饰符可以用来修饰方法也可以修饰类
抽象类 概念 abstract 修饰符可以用来修饰方法也可以修饰类, 如果修饰方法,那么该方法就是抽象方法: 如果修饰类,那么该类就是抽象类. 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为 ...