`
shihuan830619
  • 浏览: 583829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jQuery-autoComplete-1.8.22代码例子

阅读更多

到官方下载jquery-1.7.2.js和jquery-ui-1.8.22.costom.zip两个文件。(注意:不同版本写法不一样)

 

index.jsp页面代码如下:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ page isELIgnored="false" %>
<fmt:requestEncoding value="UTF-8"/>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<c:set var="requestURI" value="${pageContext.request.servletPath}"/>

<!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">
  <head>
    <title>sou suo lecense</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <link rel="stylesheet" type="text/css" href="${ctx}/js/jquery/ui/css/jquery.ui.all.css" />
    <%--<link rel="stylesheet" type="text/css" href="${ctx}/css/demos.css" />--%>

    <script type="text/javascript" src="${ctx}/js/jquery/jquery-1.7.2.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/ui/jquery.ui.core.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/ui/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/ui/jquery.ui.position.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/ui/jquery.ui.autocomplete.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/json2.js"></script>

    <style type="text/css">
        .ui-autocomplete {
            max-width: 151px;
            max-height: 200px;
            overflow-y: auto;
            overflow-x: hidden;
            padding-right: 1px;
        }

        /* IE6 不支持下拉样式 */
        * html .ui-autocomplete {
            height: 100px;
        }

        .ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
        #city { width: 25em; }
    </style>
    <script type="text/javascript">
        jQuery(document).ready(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","我们","我爱我家","我是优派","shihuan","anjie","唯我独尊"];
//            $("#mylike").autocomplete({
//                source: availableTags
//            });


			//下面是带有分类的数组模式的数据格式
//            $.widget( "custom.catcomplete", $.ui.autocomplete, {
//                _renderMenu: function( ul, items ) {
//                    var self = this,
//                            currentCategory = "";
//                    $.each( items, function( index, item ) {
//                        if ( item.category != currentCategory ) {
//                            ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
//                            currentCategory = item.category;
//                        }
//                        self._renderItem( ul, item );
//                    });
//                }
//            });
//
//            var data = [
//                { label: "anders", category: "" },
//                { label: "andreas", category: "" },
//                { label: "antal", category: "" },
//                { label: "annhhx10", category: "Products" },
//                { label: "annk K12", category: "Products" },
//                { label: "annttop C13", category: "Products" },
//                { label: "anders andersson", category: "People" },
//                { label: "andreas andersson", category: "People" },
//                { label: "andreas johnson", category: "People" }
//            ];
//
//            var data1 = [
//                { label: "anders", category: "" },
//                { label: "andreas", category: "" },
//                { label: "antal", category: "" },
//                { label: "annhhx10", category: "" },
//                { label: "annk K12", category: "" },
//                { label: "annttop C13", category: "" },
//                { label: "anders andersson", category: "" },
//                { label: "andreas andersson", category: "" },
//                { label: "andreas johnson", category: "" }
//            ];
//
//            $("#search").catcomplete({
//                delay: 0,
//                source: data1
//            });



			//下面是JSON数据类型的数据格式
			function log(message) {
				$("<div/>").text(message).prependTo("#log");
				$("#log").scrollTop(0);
			}
			$("#city").autocomplete({
				source: function(request, response) {
					$.ajax({
						url: "user/manage/queryjsondata.do",
						dataType: "json",
						data: {myparam: "myp", mynum: 12, name_startsWith: request.term},   //传递给后台请求的参数
						success: function(data) {  
							response( $.map(data, function(item) {
								return {
									//label: item.uid + (item.displayname ? ", " + item.displayname : "") + ", " + item.mail,
									label: item.uid,    //显示在匹配下拉框的内容
									mytext: item.mail,    //可以自定义,用来赋值给其他input框或div域
									value: item.displayname    //是返回值属性
								}
							}));
						}
					});
				},
				minLength: 2,  //至少输入几个字符的时候开始匹配
				select: function(event, ui) {   //选中失去焦点后触发的事件
					//log(ui.item ? "Selected: " + ui.item.label : "Nothing selected, input was " + this.value);
					log(ui.item ? "Selected: " + ui.item.mytext : "Nothing selected, input was " + this.value);
					$("#citycode").val(ui.item.value);
					//$("#log").html(this.value);
				},
				open: function() {  //在下拉框被显示的时候触发
					$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
				},
				close: function() {  //在下拉框被隐藏的时候触发
					$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
				}
			});
			
        });



        /* 获取选中后input框中的value值 */
        function getSearchVal(){
            alert($("#search").val());
        }
     </script>
  </head>
  
  <body>
  
  	<%--
    This is my JSP page. <br>
    <form action="user/manage/queryuser.do" method="get">
    	<input type="submit" name="ok" value="ok" />
    </form>
    --%>
    
    
    <div class="ui-widget">

        <form action="" method="post">
            <label for="mylike">模糊匹配: </label>
            <input id="mylike" style="width:150px;" />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <label for="search">分类模糊匹配: </label>
            <input id="search" style="width:150px;" />
            &nbsp;&nbsp;
            <input type="button" name="btn" value="获取选中值" onclick="getSearchVal();" />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <label for="city">Json数据匹配:</label>
            <input id="city" style="width:300px;" />
            <input type="text" id="citycode" />
        </form>

    </div>


    <div class="ui-widget" style="margin-top:2em; font-family:Arial">
        Result:
        <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
    </div>
    
  </body>
</html>

 

 

后台请求的Java代码如下:

 

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shihuan.core.framework.control.BaseControl;
import com.shihuan.core.framework.query.PageUtil;
import com.shihuan.core.framework.query.ReportPage;
import com.shihuan.core.framework.utils.DecodeUtil;
import com.shihuan.core.framework.utils.OpMessage;
import com.shihuan.service.UserService;

@Controller
@RequestMapping(value = "user/manage")
public class UserCtrl extends BaseControl {

	protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(getClass().getName());
	
	@Autowired
	private UserService userService;
@RequestMapping(value = "queryjsondata.do")
	@ResponseBody
    public void queryjsondata(HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println(request.getParameter("myparam") + " -- " + request.getParameter("mynum") + " -- " + request.getParameter("name_startsWith"));
		
		String jsondata = "[{\"uid\":\"123\", \"displayname\":\"my123\", \"mail\":\"mail123\"}, {\"uid\":\"456\", \"displayname\":\"my456\", \"mail\":\"mail456\"}, {\"uid\":\"789\", \"displayname\":\"my789\", \"mail\":\"mail789\"}]";
		
		response.setContentType("text/plain; charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		
		
		response.getWriter().println(jsondata);
    }
}

 

 

运行截图如下:

运行结果图1

运行截图2

示例代码在笔者abcdef的163邮箱里。

0
0
分享到:
评论
1 楼 tanier53 2014-03-12  
大神,求解释,我现在有个问题哈 ,
  为什么我的自动完成功能,在使用过程中,当下拉列表结果集超过限制后,
该结果集的滚动条怎么显示在父窗口了啊?
求解释!!!

  父窗口是一个 modaldialog

相关推荐

    jquery-autocomplete

    `jQuery-autocomplete` 是一个基于 jQuery 的开源插件,用于实现自动补全功能。这个插件使得在网页表单输入框中快速、高效地提供下拉建议变得简单易行,提高了用户界面的交互性和用户体验。它广泛应用于搜索引擎、...

    jQuery-Autocomplete-exaples.rar

    `jQuery-Autocomplete-master` 文件夹可能包含了插件的完整源码和示例页面,供开发者更深入地理解和定制。 ### 4. 实战应用 jQuery Autocomplete 可以用于各种场景,如搜索框、地址输入、产品推荐等。通过自定义 `...

    jquery-autoComplete 处理返回的json对象问题

    其中,jQuery-ui中的autoComplete组件是一个非常实用的功能,它能够帮助用户在输入时自动填充建议,通常用于搜索框或者表单输入。本文将深入探讨如何处理jQuery-autoComplete插件在接收到JSON对象返回数据时可能遇到...

    jQuery-Autocomplete-master.rar

    这个"jQuery-Autocomplete-master"压缩包提供了一个简单的示例,用于演示如何利用jQuery实现自动补全功能,同时支持通过AJAX动态获取数据以及从本地加载数据。 1. **jQuery Autocomplete 插件**: jQuery ...

    jquery-autocomplete 自动完成

    **jQuery Autocomplete 插件详解** jQuery Autocomplete 是一个非常流行的前端开发插件,它为输入框提供了自动完成的功能,极大地提升了用户在网页上的交互体验。这个插件基于JavaScript库jQuery构建,允许开发者...

    Jquery-autocomplete.jar

    Jquery-autocomplete [ 自动完成 ] ,网页无刷新,与 google baidu 一样

    带数据库的 jquery-autocomplete-php

    【标题】"带数据库的 jquery-autocomplete-php" 涉及到的是一个使用jQuery库实现的自动补全功能,结合PHP和MySQL数据库来提供动态搜索建议。jQuery UI的Autocomplete插件是这个功能的核心,它允许用户在输入框中输入...

    jquery插件-autocomplete

    **jQuery Autocomplete插件详解** 在前端开发中,jQuery库为我们提供了丰富的功能和简便的API,使得网页交互变得更加便捷。而jQuery Autocomplete插件则是一个非常实用的工具,它能够帮助用户在输入框中实现自动...

    jquery-autocomplete文档

    ### jQuery Autocomplete 插件详解 #### 一、概述 jQuery Autocomplete插件是一个非常实用且功能丰富的jQuery扩展,主要用于实现网页表单中输入框的自动补全功能。该插件能够极大地提升用户体验,使用户在输入数据...

    前端项目-jquery.devbridge-autocomplete.zip

    【标题】"前端项目-jquery.devbridge-autocomplete.zip" 是一个专门用于前端开发的自动完成功能包,基于jQuery库构建。它旨在帮助用户在输入框中键入文本时,实时提供相关的建议列表,提高用户体验并加快输入速度。 ...

    jquery-autocomplete 自动填充插件参数使用说明

    &lt;input type="text" id="autocomplete-input"&gt; ``` 然后,我们可以初始化Autocomplete插件,通过设置各种参数来定制其行为: 1. **source**:这是Autocomplete的核心参数,用于指定数据源。可以是一个函数、数组或...

    jquery.autocomplete.js资源压缩包下载

    在压缩包`jQuery-Autocomplete-master`中,通常包含了`jquery.autocomplete.js`源码文件、示例代码、CSS样式文件以及可能的文档。开发者可以通过阅读示例和文档,快速理解和应用这个插件。同时,由于它是开源的,...

    jquery的autocomplete(自动补全)插件

    **jQuery的Autocomplete插件**是用于实现网页输入框自动补全功能的一种高效解决方案,它极大地提升了用户体验,尤其是在用户需要从大量数据中选择时。这个插件是基于jQuery库的,因此,首先需要确保在项目中引入了...

    jquery-autocomplete 智能提示

    **jQuery Autocomplete 知识详解** `jQuery Autocomplete` 是一个非常流行的 jQuery 插件,它为输入框提供了自动补全的功能,适用于各种 Web 应用中的搜索、填充表单等场景。这个插件能够根据用户输入的部分字符,...

    jQuery-Autocomplete资源

    **jQuery Autocomplete** 是一个非常流行的JavaScript库,用于在用户输入时提供动态建议或自动完成。这个资源包包含了丰富的信息和实例,可以帮助开发者更深入地理解和应用jQuery Autocomplete插件。 **1. 插件介绍...

    jquery-ui.css、jquery-ui.js下载

    6. **Autocomplete** - 自动补全功能,常见于搜索框或输入框,提高用户体验。 7. **Sortable** - 使得列表项可以拖放排序,适用于任务管理或项目列表。 8. **Resizable** - 允许用户通过拖动边角调整元素大小。 在...

    前端项目-jquery-autocomplete.zip

    **jQuery AutoComplete 插件详解** 前端开发中,用户输入的自动补全功能是一个常见的需求,它可以提升用户体验,使得用户能够快速找到并选择所需的信息。`jQuery AutoComplete` 是一个基于 jQuery 的轻量级插件,它...

Global site tag (gtag.js) - Google Analytics