使用升级版的 Bootstrap typeahead v1.2.2
上次介绍了 Bootstrap 2 中附带的 typeahead,功能强大,但是使用起来不太方便,作者 Terry Rosen 已经升级了一个新版本 v1.2.2,作出了很大的改进。
下载地址
https://github.com/tcrosen/twitter-bootstrap-typeahead
使用环境
- Twitter Bootstrap 2.0+
- jQuery 1.7+
页面准备
<link href="/path/to/bootstrap.css" rel="stylesheet">
<script src="/path/to/jquery.js" type="text/javascript"></script>
<script src="/path/to/bootstrap-typeahead.js" type="text/javascript"></script>
脚本
$(myElement).typeahead(options);
事件
| 事件 | 说明 |
|---|---|
| grepper | Filters relevant results from the source. |
| highlighter | Highlights any matching results in the list. |
| itemSelected | 当选中一个项目时的回调函数.
|
| lookup | Determines if source is remote or local and initializes the search. |
| matcher | Looks for a match between the query and a source item. |
| render | Renders the list of results. |
| select | Selects an item from the results list. |
| sorter | 排序结果. |
初始化参数
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ajax | object |
{
|
The object required to use a remote datasource. See also: ajax as a string (below) |
| ajax | string | null |
Optionally, a simple URL may be used instead of the AJAX object. See also: ajax as an object (above) |
| display | string | 'name' | The object property to match the query against and highlight in the results. |
| item | string | '<li><a href="#"></a></li>' | The HTML rendering for a result item. |
| items | integer | 8 | The maximum number of items to show in the results. |
| menu | string | '<ul class="typeahead dropdown-menu"></ul>' | The HTML rendering for the results list. |
| source | object | [] | The source to search against. |
| val | string | 'id' | The object property that is returned when an item is selected. |
基本使用
如果使用本地数据的话直接使用 source
var mySource = [{ id: 1, name: 'Terry'}, { id: 2, name: 'Mark'}, { id: 3, name: 'Jacob'}];
$('#myElement').typeahead({
source: mySource
});
如果使用 Ajax 的话,可以直接指定 url,注意,现在的版本要求必须使用对象形式的数据源,默认显示文本为对象的 name 属性,可以通过初始化参数的 display 配置,默认的标识属性为 id ,可以使用 val 进行配置。
$('#myElement').typeahead({
ajax: '/path/to/mySource'
});
使用 Ajax
$(function () {
$('#product_search').typeahead({
ajax: {
url: '@Url.Action("AjaxService")',
timeout: 300, // 延时
method: 'post',
triggerLength: 3, // 输入几个字符之后,开始请求
loadingClass: null, // 加载数据时, 元素使用的样式类
preDispatch: null, // 发出请求之前,调用的预处理方法
preProcess: null // Ajax 请求完成之后,调用的后处理方法
},
display: "name", // 默认的对象属性名称为 name 属性
val: "id", // 默认的标识属性名称为 id 属性
items: 8, // 最多显示项目数量
itemSelected: function (item, val, text) { // 当选中一个项目的时候,回调函数
console.info(item);
}
});
});
如果我们需要在请求中,除了递进搜索的参数之外,添加额外的请求参数怎么办呢,可以通过 preDispatch 进行额外处理,需要注意的是,一定要返回一个对象,这个对象将用来使用 jQuery 的 Ajax 方法作为参数。
$(function () {
$('#product_search').typeahead({
ajax: {
url: '@Url.Action("AjaxService")',
timeout: 300, // 延时
method: 'post',
triggerLength: 3, // 输入几个字符之后,开始请求
loadingClass: null, //
preDispatch: function (query) {
var para = { other: 'xxxxxxxxx' };
para.query = query;
return para;
},
preProcess: function (result) {
return result;
}
},
display: "name", // 默认的对象属性名称为 name 属性
val: "id", // 默认的标识属性名称为 id 属性
items: 8, // 最多显示项目数量
itemSelected: function (item, val, text) { // 当选中一个项目的时候,回调函数
console.info(item);
// console.info($("#product_search").val());
}
});
});
使用升级版的 Bootstrap typeahead v1.2.2的更多相关文章
- bootstrap - typeahead自动补全插件
$('#Sale').typeahead({ ajax: { url: '@Url.Action("../Contract/GetSale")', //timeout: 300, ...
- Bootstrap Typeahead/Jquery autocomplete自动补全
使用Bootstrap Typeahead 组件: Bootstrap 中的 Typeahead 组件就是通常所说的自动完成 AutoComplete,自动填充. 效果如图所示: 实现方式: 1.引入 ...
- 使用 Bootstrap Typeahead 组件
Bootstrap 中的 Typeahead 组件就是通常所说的自动完成 AutoComplete,功能很强大,但是,使用上并不太方便.这里我们将介绍一下这个组件的使用. 第一,简单使用 首先,最简单 ...
- 第五章 使用 Bootstrap Typeahead 组件(百度下拉效果)
推荐链接:http://www.cnblogs.com/haogj/p/3376874.html UnderScore官网:http://underscorejs.org/ 参考文档:http://w ...
- 在 angularjs 中集成 bootstrap typeahead
问题 在使用 typeahead 的时候,有这样一个需求,当用户选中其中一项的之后,将项目对应的 id 保存到另外一个变量中,以后在提交表单的时候,将这个 id 发送到服务器中. 但是,在 typea ...
- 第六章 使用 Bootstrap Typeahead 组件(百度下拉效果)(续)
官方:http://twitter.github.io/typeahead.js/ 示例:http://twitter.github.io/typeahead.js/examples/(本文展示:Op ...
- Bootstrap fileinput v1.0(ssm版)
前言bootstrap fileinput是一个很好的文件上传插件.但是官方不出api,这就尴尬了.百度一下,每个人写法都不相同,好多代码本身都是错的.我修改后才能跑起来.综上所述:所以今天我摸索了一 ...
- 使用Bootstrap typeahead插件实现搜索框自动补全的配置参数。
示例代码: <input type="text" id="addr"/> <input type="text" hidde ...
- 【Bootstrap】 typeahead自动补全
typeahead 这篇文章记录了我在使用typeahead的一些问题,不是很全,但是基本够用. Bootstrap提供typeahead组件来完成自动补全功能. 两种用法: 直接给标签添加属性 &l ...
随机推荐
- .Net分布式缓存应用实例:Couchbase
转自:http://www.cnblogs.com/wu-jian Couchbase概述 Couchbase最早叫Membase,是由Memcached项目组的一些头目另立的山头. 2011年与Co ...
- C++中的空类与空结构体大小
今天面试遇到了一个很有意思的问题,即空结构体在C++中所占的内存大小是多少?参见如下代码: #include <iostream> struct S0 { }; int main() { ...
- ios外派—本公司长年提供ios程序员外派业务(北京动点软件,可签合同)
北京动点飞扬长年提供ios工程师外派业务. 我公司程序员平均技术情况如下: 1.二年以上iPhone/ipad开发经验:2.熟练使用Xcode.Objective C编码技能:3.熟悉iOS开发框架, ...
- 给windows的VM更换网卡到VMNET3从E1000
1. Login to vCenter via vSphere client. go to the vm 2. create a 1G new disk(SCSI 1:2) for the VM te ...
- Linux xargs命令
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...
- MST_kruskal
kruskal是求最小生成树的算法. 首先,kruskal就是把所有边按照权值从小到大的顺序排列,这一步可以直接使用sort,然后依次考查每一条边,设w=(u,v)表示从u到v的一条边的权值为w,则有 ...
- JAVA类的构造方法
1,构造方法没有返回类型, 定义: []public] 方法名() {} 2,一个构造方法如果想调用同一类中的另一个构造方法,只能调用一个,并且要放在构造方法第一行 3,用this调用,如 publi ...
- Logs
syslogs Fortinet: http://docs.fortinet.com/fgt.html
- android的照片浏览器(一)至返回所有图片文件
今天开始写android的照片浏览器 首先要解决的问题是要得到sdcard下面所有是图片的文件的目录 于是我先写了一个普通的java类 来得到后缀是.jpg,.bmp.png.jpeg的文件 pack ...