`
coding1688
  • 浏览: 236819 次
  • 来自: 上海
社区版块
存档分类
最新评论

jQueryUI中关于AutoComplete的说明

 
阅读更多

jQueryUI中关于AutoComplete的说明

本文只是对jQueryUI的AutoComplete插件官方文档的摘录,写的比较好的中文使用教程请参见下面的资料:

囧月 坐井观天 jQuery UI Autocomplete 体验 http://www.cnblogs.com/lwme/archive/2012/02/12/jquery-ui-autocomplete.html

 

 

什么是AutoComplete及使用场景

AutoComplete:文本框的自动填充控件AutoComplete,类似于Google搜索输入框提供的功能。为什么有这样的功能呢,因为用户都很懒

 

Autocomplete, when added to an input field, enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering.

By giving an Autocomplete field focus or entering something into it, the plugin starts searching for entries that match and displays a list of values to choose from. By entering more characters, the user can filter down the list to better matches.

This can be used to enter previous selected values, for example you could use Autocomplete for entering tags, to complete an address, you could enter a city name and get the zip code, or maybe enter email addresses from an address book.

 

如果选项数据量很少,比如10条以内,个人觉得使用radio或者select更好。

 

AutoComplete使用样例(本地静态数据)

 

<meta charset="utf-8">
	
	<script>
	$(function() {
		var availableTags = [
			"ActionScript",
			"AppleScript",
			"Asp",
			"BASIC",
			"C",
			"C++",
			"Clojure",
			"COBOL",
			"ColdFusion",
			"Erlang",
			"Fortran",
			"Groovy",
			"Haskell",
			"Java",
			"JavaScript",
			"Lisp",
			"Perl",
			"PHP",
			"Python",
			"Ruby",
			"Scala",
			"Scheme"
		];
		$( "#tags" ).autocomplete({
			source: availableTags
		});
	});
	</script>


<div class="demo">

<div class="ui-widget">
	<label for="tags">Tags: </label>
	<input id="tags" />
</div>

</div><!-- End demo -->


 

 

选项数据的三种提供方式(本地数组、指定URL、Callback)

You can pull data in from a local and/or a remote source: Local is good for small data sets (like an address book with 50 entries), remote is necessary for big data sets, like a database with hundreds or millions of entries to select from.

Autocomplete can be customized to work with various data sources, by just specifying the source option. A data source can be:

  • an Array with local data
  • a String, specifying a URL
  • a Callback

期望数据格式(Expected data format)

The data from local data, a url or a callback can come in two variants:

  • An Array of Strings:
    [ "Choice1", "Choice2" ]
  • An Array of Objects with label and value properties:
    [ { label: "Choice1", value: "value1" }, ... ]

The label property is displayed in the suggestion menu. The value will be inserted into the input element after the user selected something from the menu. If just one property is specified, it will be used for both, eg. if you provide only value-properties, the value will also be used as the label.

 

 

指定URL来获取选项数据

When a String is used, the Autocomplete plugin expects that string to point to a URL resource that will return JSON data. It can be on the same host or on a different one (must provide JSONP). The Autocomplete plugin does not filter the results, instead the request parameter "term" gets added to the URL, which the server-side script should use for filtering the results. The data itself can be in the same format as the local data described above.

 

	<script>
	$(function() {
		$( "#tags" ).autocomplete({
			source: "search.php",
			minLength: 2,
			select: function( event, ui ) {
				// ui.item ?
				//	"Selected: " + ui.item.value + " aka " + ui.item.id :
				//	"Nothing selected, input was " + this.value;
			}
		});
	});
	</script>
 
下面使用firebug得到的search.php部分响应内容
[ { "id": "Ciconia ciconia", "label": "White Stork", "value": "White Stork" }, { "id": "Netta rufina", "label": "Red-crested Pochard", "value": "Red-crested Pochard" }, 
{ "id": "Burhinus oedicnemus", "label": "Stone Curlew", "value": "Stone Curlew" }, { "id": "Galerida cristata", "label": "Crested Lark", "value": "Crested Lark" }, 
{ "id": "Saxicola rubicola", "label": "European Stonechat", "value": "European Stonechat" }, { "id": "Circus aeruginosus", "label": "Western Marsh Harrier", "value": "Western Marsh Harrier" }, 
{ "id": "Podiceps cristatus", "label": "Great Crested Grebe", "value": "Great Crested Grebe" } ]
 

 

用回调函数来提供选项数据

使用回调函数主要有两种用途:

1、对本地的选项数据进行筛选/过滤;

2、使用ajax从远端获取选项数据;

 

The third variation, the callback, provides the most flexibility, and can be used to connect any data source to Autocomplete. The callback gets two arguments:

  • A request object, with a single property called "term", which refers to the value currently in the text input. For example, when the user entered "new yo" in a city field, the Autocomplete term will equal "new yo".
  • A response callback, which expects a single argument to contain the data to suggest to the user. This data should be filtered based on the provided term, and can be in any of the formats described above for simple local data (String-Array or Object-Array with label/value/both properties). It's important when providing a custom source callback to handle errors during the request. You must always call the response callback even if you encounter an error. This ensures that the widget always has the correct state.

The label is always treated as text, if you want the label to be treated as html you can use Scott González' html extension. The demos all focus on different variations of the source-option - look for the one that matches your use case, and take a look at the code.

 

使用ajax获取json数据的代码样本,request.term 是用户输入的内容。

 

$(function() {
    $("#tags").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "searchAction!search.action",
                type: "POST",
                data: {
                    term: request.term
                },
                dataType: "json",
                success: function(rsp) {
                    response((rsp && rsp.data) ? rsp.data : []);  // 假定选项数据在rsp.data中
                },
                error: function() {
                    response([]);   // 出错了也要response一下,否则“忙碌”的小图标就会不停地转
                }
            });
        },
        minLength: 2,
        select: function (event, ui) {
            // ui.item ? ui.item.value : this.value
        }
    });
});
 

 

0
2
分享到:
评论
2 楼 coding1688 2012-05-03  
zhangyaochun 写道
LZ:jquery拼错了

谢谢提醒。
1 楼 zhangyaochun 2012-05-03  
LZ:jquery拼错了

相关推荐

    jQuery UI Autocomplete是jQuery UI的自动完成组件

    在lwme-jqueryui-demo这个压缩包中,可能包含了多个示例文件,它们展示了Autocomplete的不同用法和配置,可以帮助开发者更好地理解和运用这个组件。通过学习这些示例,你可以掌握如何根据项目需求灵活定制...

    jquery-ui-autocomplete

    `jQuery UI Autocomplete`的核心功能是根据用户在输入框中键入的字符,动态地从预定义的数据源中匹配并展示建议选项。这些数据源可以是静态数组、AJAX请求返回的结果,或者通过其他异步方式获取。它支持多种定制选项...

    jquery.ui.autocomplete 扩展:无限下拉

    jQuery UI库中的Autocomplete组件是实现这一目标的利器,它提供了自动补全功能,常用于搜索框或者输入框,帮助用户快速找到他们想要的内容。本文将深入探讨如何扩展jQuery UI Autocomplete,实现无限滚动的下拉效果...

    jquery.ui.autocomplete-Ajax

    在本篇中,我们将深入探讨jQuery UI Autocomplete与AJAX的结合使用,以及如何利用它们来实现动态数据加载。 首先,我们需要了解jQuery UI Autocomplete的基本用法。Autocomplete通过监听用户的输入事件,然后根据...

    JQuery UI 中文帮助文档

    - **AUTOCOMPLETE(自动补全)**: 在输入框中提供动态的建议列表,提高输入效率,常用于搜索框和表单输入。 ### 2. 使用jQuery UI的步骤 1. **引入库文件**:首先在HTML文件中引入jQuery库和jQuery UI的CSS与JS...

    jqueryUI的Autocomplete实现代码

    **jQuery UI Autocomplete** 是一个强大的功能,它允许用户在输入框中输入文字时自动提示相关的建议信息。这个功能在各种网页应用中广泛使用,比如搜索引擎、表单填充、产品搜索等,极大地提升了用户体验。本篇文章...

    JQuery UI之Autocomplete使用详解

    JQuery UI之Autocomplete使用详解

    jquery.ui.autocomplete.js

    根据用户输入值进行搜索和过滤,让用户快速找到并从预设值列表中选择。 如需了解更多有关 autocomplete 部件的细节,请查看 API 文档 自动完成部件(Autocomplete Widget)。

    jquery UI中文文档

    这个中文文档集是为开发者提供关于如何使用 jQuery UI 的详细指南,包括组件的配置、样式调整以及与现有项目的集成方法。 **主要组件** 1. **对话框(Dialog)**:jQuery UI 提供了模态和非模态对话框功能,可以轻松...

    jquery-ui autocomplete

    **jQuery UI Autocomplete** 是一个基于 jQuery 库的插件,用于实现自动补全功能,它为用户在输入框中输入内容时提供实时的建议列表。这个功能在各种 Web 应用中非常常见,比如搜索框、表单填充等,能够极大地提升...

    jQuery UI组件 jQuery UI

    `development-bundle`目录包含未压缩和未合并的jQuery UI资源,适合在开发过程中使用,便于调试和定制。而`css`和`js`目录则包含已经压缩和合并的文件,适用于生产环境,以减少加载时间和网络带宽。 总的来说,...

    jquery ui autocomplete

    在lwme-jqueryui-demo中,我们可以找到一个简单的jQuery UI Autocomplete的演示项目。这个项目展示了如何利用Autocomplete实现一个基本的搜索功能,用户在输入框中输入关键字,系统会从预设的词汇列表中匹配并显示...

    JQueryUI,EasyUI一些控件的使用

    在JQueryUI中,你可以使用Autocomplete组件为输入框提供自动完成功能,这在搜索框或输入建议场景中非常有用。另外,Slider组件则可以创建滑动条,允许用户通过直观的方式选择数值或进行排序。 接下来,我们讨论Tab...

    JQuery UI1.7中文文档

    - **Autocomplete(自动完成)**: 在输入框中提供实时的搜索建议,提高用户输入效率。 - **Sortable(可排序)**: 使列表项可拖放排序,常用于列表或表格。 - **Resizable(可调整大小)**: 允许用户通过拖动边角...

    JQuery UI 中文帮助文档.rar

    这个“JQuery UI 中文帮助文档”包含了关于这个强大工具集的详细信息,对于理解和使用jQuery UI非常有帮助。 ### 1. jQuery UI 的核心特点 - **组件丰富**:jQuery UI 提供了如日期选择器、时间选择器、对话框、...

    jQueryUI API文档资料

    1. **组件(Widgets)**:jQuery UI的核心在于它的组件,这些组件是预先封装好的UI元素,如Accordion(手风琴)、Autocomplete(自动完成)、Button(按钮)、Calendar(日历,即日期选择器)、Dialog(对话框)、...

    JQUERY UI 开发指南源码

    jQuery UI的核心是其组件系统,这些组件包括但不限于:`accordion`(手风琴)、`autocomplete`(自动完成)、`datepicker`(日期选择器)、`dialog`(对话框)、`draggable`(可拖动)、`droppable`(可放置)、`...

    jQuery UI Autocomplete 1.8.16 中文输入修正代码

    jQuery UI Autocomplete广泛应用于各种网站和应用程序中,为用户提供便捷的输入体验。 然而,在处理中文输入时,Autocomplete组件可能会遇到一些问题。例如,中文字符的编码和处理方式与英文不同,中文字符通常占用...

Global site tag (gtag.js) - Google Analytics