jquery.jquery autocompletee 怎么样设置选择框宽度等于内容宽度

jQuery搜索自动完成插件Autocomplete特效 - jquery教程 - ab蓝学网
当前位置: &
jQuery搜索自动完成插件Autocomplete特效
简介:jQuery自动完成插件Autocomplete特效,能表单自动提示的效果,搜索时自动关联相关的数据一、Autocomplete实例介绍jQueryAutocomplete是流行的实现自动填充功能插件...
jQuery自动完成插件Autocomplete特效,能表单自动提示的效果,搜索时自动关联相关的数据
一、Autocomplete实例介绍
用户在使用文本框搜索信息时,实现类似百度、Google文本输入框自动补全智能提示效果。
Demo功能效果如下:
二、Demo Html代码片段
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns="http://www.w3.org/1999/xhtml"&
&title&jQuery自动完成组件Autocomplete Demo&/title&
&script type="text/javascript" src="jquery.js"&&/script&
&script type="text/javascript" src="jquery.autocomplete.js"&&/script&
&script type="text/javascript" src="localdata.js"&&/script&
&link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" /&
&script type="text/javascript"&
&&& $().ready(function () {
&&&&&&& function log(event, data, formatted) {
&&&&&&&&&&& $("#txtSelectName").val(data.name);
&&&&&&&&&&& $("#txtSelectValue").val(data.value);
&&&&&&& //objects为json数据源对象
&&&&&&& $("#txtSelectName").autocomplete(objects, {
&&&&&&&&&&& minChars: 0, //表示在自动完成激活之前填入的最小字符
&&&&&&&&&&& max: 5, //表示列表里的条目数
&&&&&&&&&&& autoFill: true, //表示自动填充
&&&&&&&&&&& mustMatch: false, //表示必须匹配条目,文本框里输入的内容,必须是data参数里的数据,如果不匹配,文本框就被清空
&&&&&&&&&&& matchContains: true, //表示包含匹配,相当于模糊匹配
&&&&&&&&&&& scrollHeight: 200, //表示列表显示高度,默认高度为180
&&&&&&&&&&& formatItem: function (row) {
&&&&&&&&&&&&&&& return row.
&&&&&&&&&&& },
&&&&&&&&&&& formatMatch: function (row) {
&&&&&&&&&&&&&&& return row.
&&&&&&&&&&& },
&&&&&&&&&&& formatResult: function (row) {
&&&&&&&&&&&&&&& return row.
&&&&&&&&&&& }
&&&&&&& });
&&&&&&& $(":text, textarea").result(log).next("#txtSelectValue").click(function () {
&&&&&&&&&&& $(this).prev().search();
&&&&&&& });
&div id="content"&jQuery自动实现&br /&&br /&名称:&input type="text" id="txtSelectName" /& 值:&input type="text" id="txtSelectValue" /&&/div&
三、数据源介绍
Demo中使用了Json数据源,Autocomplete插件同时也支持js数组和远程数据源。
var objects = [
&&& { name: "项目一", value: "1" },
&&& { name: "项目二", value: "2" },
&&& { name: "项目三", value: "3" },
&&& { name: "项目四", value: "4" },
&&& { name: "项目五", value: "5" },
&&& { name: "项目六", value: "6" },
&&& { name: "项目七", value: "7" },
&&& { name: "abc", value: "abc" },
&&& { name: "abce", value: "abce" },
&&& { name: "abcef", value: "abcef" },
&&& { name: "bcd", value: "bcd" },
&&& { name: "bcdfdsaf", value: "bcd" },
&&& { name: "bcdfds", value: "bcdfds" },
&&& { name: "cbd", value: "cbd" },
&&& { name: "efg", value: "efg" },
&&& { name: "fgdaf", value: "fgdaf" },
&&& { name: "fasfs", value: "fasfs" }];
四、常用参数介绍
* minChars (Number):
在触发autoComplete前用户至少需要输入的字符数.Default: 1,如果设为0,在输入框内双击或者删除输入框内内容时显示列表
* width (Number):&
指定下拉框的宽度. Default: input元素的宽度
* max (Number):
autoComplete下拉显示项目的个数.Default: 10
* delay (Number):
击键后激活autoComplete的延迟时间(单位毫秒).Default: 远程为400 本地10
* autoFill (Boolean):
要不要在用户选择时自动将用户当前鼠标所在的值填入到input框. Default: false
* mustMatch (Booolean):
如果设置为true,autoComplete只会允许匹配的结果出现在输入框,所有当用户输入的是非法字符时将会得不到下拉框.Default: false
* matchContains (Boolean):
决定比较时是否要在字符串内部查看匹配,如ba是否与foo bar中的ba匹配.使用缓存时比较重要.不要和autofill混用.Default: false
* selectFirst (Boolean):
如果设置成true,在用户键入tab或return键时autoComplete下拉列表的第一个值将被自动选择,尽管它没被手工选中(用键盘或鼠标).当然如果用户选中某个项目,那么就用用户选中的值. Default: true
* cacheLength (Number):
缓存的长度.即对从数据库中取到的结果集要缓存多少条记录.设成1为不缓存.Default: 10
* matchSubset (Boolean):
autoComplete可不可以使用对服务器查询的缓存,如果缓存对foo的查询结果,那么如果用户输入foo就不需要再进行检索了,直接使用缓存.通常是打开这个选项以减轻服务器的负担以提高性能.只会在缓存长度大于1时有效.Default: true
* matchCase (Boolean):
比较是否开启大小写敏感开关.使用缓存时比较重要.如果你理解上一个选项,这个也就不难理解,就好比foot要不要到FOO的缓存中去找.Default: false
* multiple (Boolean):
是否允许输入多个值即多次使用autoComplete以输入多个值. Default: false
* multipleSeparator (String):
如果是多选时,用来分开各个选择的字符. Default: ","
* scroll (Boolean):
当结果集大于默认高度时是否使用卷轴显示 Default: true
* scrollHeight (Number):
自动完成提示的卷轴高度用像素大小表示 Default: 180
* formatItem (Function):
为每个要显示的项目使用高级标签.即对结果中的每一行都会调用这个函数,返回值将用LI元素包含显示在下拉列表中.
Autocompleter会提供三个参数(row, i, max): 返回的结果数组, 当前处理的行数(即第几个项目,是从1开始的自然数),
当前结果数组元素的个数即项目的个数. Default: none, 表示不指定自定义的处理函数,这样下拉列表中的每一行只包含一个值.
* formatResult (Function):
和formatItem类似,但可以将将要输入到input文本框内的值进行格式化.同样有三个参数,和formatItem一样.Default: none,表示要么是只有数据,要么是使用formatItem提供的值.
* formatMatch (Function):
对每一行数据使用此函数格式化需要查询的数据格式. 返回值是给内部搜索算法使用的. 参数值row
如果觉得《jQuery搜索自动完成插件Autocomplete特效》不错,请把本站告诉您身边的朋友!
转载注明本文地址:
正在加载 jQuery搜索自动完成插件Autocomplete特效 评论...ajax的autocomplete下拉框宽度
[问题点数:20分]
ajax的autocomplete下拉框宽度
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。页面导航:
→ 正文内容 jQuery autocomplete
jQuery autocomplete插件修改
如果你不知道什么是jQuery autocomplete插件,请看图。你可以测试一下本站的搜索。当然也可以百度一下。
主要修改了两个地方: 一、上下选择与输入值同步问题。   输入关键字后,当出现了下拉选项,用键盘的上下键选择时,关键字输入框的值,没有与你选择的值同步。插件是老外写的,可能他没有考虑到这一点。 二、修正了在firefox下中文输入,没有激活自动提交的问题。   老外当然不会用到中文输入,这个bug存在也理所当然了。 另:附件里的实现了选择后自动提交,也就和google、百度的效果完全一样了。
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910jquery.autocomplete 怎么样设置选择框宽度等于内容宽度_百度知道
jquery.autocomplete 怎么样设置选择框宽度等于内容宽度
提问者采纳
默认就是相等 jqueryui 是这样的
提问者评价
其他类似问题
jquery的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁汉字转换成拼音可以实现根据拼音提示的功能。
下面重点说下jQuery Autocomplete插件的使用:
jquery核心库文件
&scriptsrc="./jquery-1.3.2.js"type="text/javascript"&&/script&
插件js文件
&scriptsrc="./jquery.autocomplete.js" type="text/javascript"&&/script&
插件样式文件
&linkrel="stylesheet" href="./jquery.autocomplete.css" /&
插件的参数说明如下:
l&minChars(number)
该参数指定在触发autocomplete之前用户在查询框中输入的最小字符数,通常设置为1,即文本框值不为空的时候执行autocomplete,如果取值为0,则在用户双击查询文本框或删除文本框内容时查询
该参数的用途是指定下拉框的宽度,通常不用设置,默认的值为和&input&元素相同
查询时下拉列表框中显示的条目数,defaultValue为10
击键后激活autoComplete的延迟时间(单位毫秒).Default: 远程为400 本地10
l& autoFill(boolean)
是否在用户选择时自动将用户鼠标所在的值填充到input元素中,default:false
l& mustMatch(boolean)
参数boolean类型,true时,如果输入的查询条件无法匹配到合适的结果,则&input&元素中输入的查询值会自动清空,否则会保留。Default:false
l& selectFirst(boolean)
参数为true时,则用户按下tab键或者return键时会自动将查询结果的第一条记录选中到input元素中
l& cacheLength(number)
缓存记录的条数,即从数据库中取得记录要缓存多少条,1为不缓存,defalut:10
l& matchSubset(boolean)
是否对从服务器的查询结果使用缓存,比如:上一次的搜索关键字为java,则下次再次输入java进行查询时不用再次连接服务器查询,而是从缓存中取得上次查询的结果,这样做可以减少访问服务器的次数,提供性能。Default:true
l& matchCase(boolean)
是否开启大小写敏感开关,在使用缓存时比较重要
l& multiple(boolean)
是否允许多值查询,如果为true,则查询到第一条结果后,再次输入查询条件则会后续的查询结果显示出来。
l& multipleSeparator(string)
只有在multiple属性设置为true时此属性才能生效,该属性用来控制在多条件查询时使用的分隔符,default:”,”
l& scroll(boolean)
设置当结果集大于默认高度时是否使用滚动条显示,default:true
l& scrollHeight(number)
查询结果框的显示高度,当超过该高度时会使用scroll
l& formatItem(Function)
对服务器返回的每一行数据都调用该函数来处理,返回值将用LI元素包含显示在下拉列表中,autocomplete会提供三个参数(row,I,max)其中row表示服务器端返回回来的结果数组,i为当前的行数(正在处理第几行数据),max为返回的记录总数(查询到的结果总数),default:none,不指定则直接返回服务器的结果值
l& formatResult(Function)
功能和formatItem基本类似,同样有三个参数作用相同,暂时没发现写该与不写该函数有什么区别
l& formatMatch(Function)
暂时不清楚该函数的具体功能,在我做的项目模块中写不写该函数一个样
l& result(handler)return jquery
此事件会在用户选中某一项后触发,参数为:event,data,formatted
Event为事件对象
Data为选中的数据行
Formatted:formatResult函数的返回值
前提:我现在已经调用了汉字转换拼音、json类库等操作数据已经返回到前台模板页面了,假如这个变量名称为$users,$users=[{'user_id':'6','name':'测控金额看','py':'cekongjinekan','jc':'ckjek'},{'user_id':'5','name':'大撒撒','py':'dasasa','jc':'dss'}]
&script type="text/javascript" src="jquery-1.4.2.js"&&/script&
&script type="text/javascript" src="jquery.autocomplete.js"&&/script&
&link rel="stylesheet" type="text/css" href="jquery.autocomplete.css"&&/link&
&form action="index.php" method="post"&
&input type="text" id="test" name="user" /&
&input type="hidden" id="user_id" name="user_id" /&
&script type="text/javascript"&
var users = &?=$users?&;
$(function(){
$("#test").autocomplete(users, {
minChars: 0,
matchContains: true,
autoFill: false,
width: 310,
formatItem: function(row, i, max) {
return row.name + "[" + row.py + "]";
formatMatch: function(row, i, max) {
return row.name + " " + row.py + row.
formatResult: function(row) {
return row.
}).result(function(event, row) {
$("#user_id").val(row.user_id);
你可能喜欢的
人生就像一场没有目的地的旅行,过往只是沿途的一站

我要回帖

更多关于 jquery 获取屏幕宽度 的文章

 

随机推荐