`

autoComplete基本代码

    博客分类:
  • ajax
阅读更多
.mouseOut {   
    background: #cccccc;   
    color: #FFFAFA;   
    }   
    .mouseOver {   
    background: #FFFAFA;   
    color: #000000;   
    }   


var xmlHttp;
        var completeDiv;   
        var inputField;   
        var nameTable;   
        var nameTableBody;   
  
        function createXMLHttpRequest() {   
            if (window.ActiveXObject) {   
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
            }   
            else if (window.XMLHttpRequest) {   
                xmlHttp = new XMLHttpRequest();                   
            }
            
        }   
  
        function initVars() {   
            inputField = document.getElementById("names");               
            nameTable = document.getElementById("name_table");   
            completeDiv = document.getElementById("popup");   
            nameTableBody = document.getElementById("name_table_body");   
        }   
  
        function findNames() {   
            initVars();   
            if (inputField.value.length > 0) {   
                createXMLHttpRequest();        
                 var url = encodeURI("ajax.portal?action=autoComplete&name=" + inputField.value);
                 url = encodeURI(url);    
                xmlHttp.open("GET", url, true);   
                xmlHttp.onreadystatechange = callback;   
                xmlHttp.send(null);   
            } else {   
                clearNames();   
            }   
        }   
  
        function callback() {   
            if (xmlHttp.readyState == 4) {   
                if (xmlHttp.status == 200) {
                    clearNames();   
                    var rows = xmlHttp.responseXML.getElementsByTagName("row").length;
                    var row,cell,txtNode;
                    for(var i=0;i<rows;i++){
                    	var value = xmlHttp.responseXML.getElementsByTagName("row")[i].firstChild.data;
                    	row=document.createElement("tr");
                    	cell=document.createElement("td");
                    	cell.onmouseout = function() {this.className='mouseOver';};   
		                cell.onmouseover = function() {this.className='mouseOut';};   
		                cell.setAttribute("bgcolor", "#FFFAFA");   
		                cell.setAttribute("border", "0");
		                cell.onclick = function() {populateName(this);};
		                txtNode = document.createTextNode(value);
		                cell.appendChild(txtNode);   
		                row.appendChild(cell);   
		                nameTableBody.appendChild(row); 
                    }
                } else if (xmlHttp.status == 204){   
                    clearNames();   
                }   
            }   
        }
        
        function populateName(cell) {   
            inputField.value = cell.firstChild.nodeValue;   
            clearNames();   
        }   
  
        function clearNames() {   
            var ind = nameTableBody.childNodes.length;   
            for (var i = ind - 1; i >= 0 ; i--) {   
                 nameTableBody.removeChild(nameTableBody.childNodes[i]);   
            }   
        }

<html:form action="/ajax.portal" method="post">
名字:   
<input type="text" id="names" onkeyup="findNames();"  style="height:20;" width="100px"/>
        <div style="border-width:medium;border-color:#000000;margin-left:40px;width:160px;"  id="popup">  
            <table id="name_table" bgcolor="#FFFAFA" border="0" cellspacing="0" cellpadding="0" width="156px";/>
                <tbody id="name_table_body">
                
                </tbody>  
            </table>  
        </div> 
</html:form>

if("autoComplete".equals(form.getAction())){
		        response.setContentType("text/xml; charset=UTF-8");//xml
		        response.setHeader("Cache-Control","no-cache");//HTTP1.1
		        response.setHeader("Pragma","no-cache");//HTTP1.0
		        response.setDateHeader("Expires",0);
		        PrintWriter out=null;
		        String name = request.getParameter("name");   
				try {
					out = response.getWriter();
//					name = new String(name.getBytes("ISO8859-1"), "UTF-8"); 
					name=java.net.URLDecoder.decode(name,"UTF-8");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}   
		        System.out.println("name="+name);
		        List names=new ArrayList();
		        names.add("abc");
		        names.add("abd");
		        names.add("ace");
		        names.add("acd");
		        names.add("bcd");
		        names.add("bce");
		        names.add("bcf");
		        names.add("cdf");
		        names.add("cdg");
		        names.add("dth");
		        names.add("dfc");
		        names.add("ddt");
		        names.add("ddd");
		        names.add("xdd");
		        names.add("ydd");
		        names.add("zdd");
		        List matches = Util.findMatches(names,name);   
		        System.out.println("matches.size="+matches.size());
		        if (matches.size() > 0) {
		            StringBuffer sb = new StringBuffer();
		            sb.append("<root>");   
		            Iterator iter = matches.iterator();   
		            while (iter.hasNext()) {
		                sb.append("<row>" + (String)iter.next() + "</row>");   
		            }   
		            sb.append("</root>");   
		            out.write(sb.toString());
		            out.close();
//		            System.out.println("sb.toString()="+sb.toString());
		  
		        } else {   
		            response.setStatus(HttpServletResponse.SC_NO_CONTENT);   
		        }
		        return mapping.findForward("ajax");

		}
分享到:
评论

相关推荐

    flex拓展组件autoComplete开源代码

    这个开源代码库提供了一个定制的`autoComplete`组件,它不仅包含源码,还附带了示例,可以帮助开发者更好地理解和使用这个功能。 该开源项目名为"flex-autocomplete-master",意味着它是Flex的`autoComplete`组件的...

    (asp,jquery) 实现autoComplete功能代码

    3. **编写jQuery代码**:在页面加载完成后,我们需要监听`searchInput`元素的`keyup`事件。当用户在输入框中键入字符时,触发异步请求到服务器,获取匹配的数据。这里可以使用jQuery的`$.ajax`方法: ```javascript...

    jQuery-autoComplete-1.8.22代码例子

    首先,我们要理解jQuery-autoComplete的基本工作流程。当用户在输入框中输入字符时,该插件会监听输入事件,然后根据预设的配置和数据源进行匹配,将匹配的结果动态展示为下拉列表供用户选择。在jQuery-autoComplete...

    jquery autocomplete官方版(源代码+示例)

    通过研究这些示例,开发者可以学习到 Autocomplete 的基本用法,以及如何结合实际项目进行定制。同时,源代码可以帮助开发者深入理解其内部工作原理,以便在必要时进行二次开发或优化。总之,jQuery Autocomplete 是...

    jquery autocomplete下载.rar

    - **jquery.autocomplete.js**:这是核心的 JavaScript 文件,包含了 Autocomplete 插件的所有功能代码。通过调用这个插件,我们可以为指定的输入框添加自动补全功能,并设置各种参数,如数据源、匹配算法、回调...

    jquery autocomplete

    然后,可以使用以下代码初始化 Autocomplete: ```html &lt;input type="text" id="autocomplete-input"&gt; ``` ```javascript $(document).ready(function() { $('#autocomplete-input').autocomplete({ source: ['...

    autocomplete-demo.zip

    在`autocomplete-demo`中,你可以看到一个实际的运行示例,通过调整代码和数据源,可以进一步定制化以满足项目需求。 总之,jQuery Autocomplete为Web开发者提供了一种高效、灵活的解决方案,用于构建自动完成功能...

    jquery.autocomplete.js使用示例,可直接运行

    示例代码 在提供的压缩包`test`中,应该包含了一个简单的演示页面,可以直接运行查看效果。这个例子展示了如何配置和使用jQuery Autocomplete.js,以及如何与服务器进行交互,实现动态数据加载和选中项的处理。 #...

    jquery autocomplete实现框输入提示

    基本的 HTML 结构应包含一个输入框元素,它将用于触发 Autocomplete 功能。 ```html &lt;!DOCTYPE html&gt; &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; ...

    BootStrap-autocomplete模糊匹配,自动填充

    1. **jQuery**:Bootstrap Autocomplete是建立在jQuery库之上的,因此需要对jQuery的基本操作如DOM操作、事件处理、动画效果等有深入了解。jQuery使得JavaScript代码更加简洁和易用,能够方便地与HTML元素交互。 2....

    jQuery-Autocomplete-master

    在上面的代码中,`availableTags`是静态数据源,你可以根据实际需求替换为数组或动态获取的数据。`source`参数指定了数据源,`$("#searchBox")`则是选择需要应用Autocomplete功能的元素。 jQuery Autocomplete 还...

    jquery.autocomplete js包

    **jQuery Autocomplete ...通过以上介绍,我们了解了 `jQuery Autocomplete` 插件的基本原理、使用方法以及优化技巧。在实际项目中,结合自身需求,灵活运用这些知识点,可以创建出高效且用户体验优秀的自动补全功能。

    autocomplete

    初始化jQuery Autocomplete插件通常在文档加载完成后执行,可以使用`$(document).ready()`函数包裹代码。基本语法如下: ```javascript $("#inputElement").autocomplete({ source: function(request, response) {...

    带分页的jquery.autocomplete

    标题提到的"带分页的jquery.autocomplete"则是在这个基本功能的基础上增加了分页功能,使得在处理大量数据时能更加高效和友好地展示搜索结果。 jQuery UI 自带的 Autocomplete 插件允许开发者通过 JSON 数据源或者...

    autocomplete.rar

    标题中的"autocomplete.rar"指的是一个压缩包文件,其主要功能可能是包含了有关自动补全或自动完成的相关代码、配置文件或文档。在IT领域,自动补全(Autocomplete)是一项非常实用的功能,常见于各种编程环境、操作...

    jQuery-Autocomplete-master.rar

    5. **基本使用方法**: 要使用jQuery Autocomplete,首先需要引入jQuery和jQuery UI库。然后,选择需要添加此功能的输入框元素,并调用`.autocomplete()`方法,传入配置对象,如数据源(`source`)、触发补全的最小...

    Jquery AutoComplete 使用demo

    这段代码会为 ID 为 "search-box" 的输入框启用 AutoComplete 功能,并从给定的数组中提供补全建议。 ### 3. 后台数据源 如果需要从服务器获取数据,可以使用 `source` 选项接受一个函数,该函数接受两个参数:...

    jquery 自动提示autocomplete

    本篇文章将深入探讨jQuery Autocomplete的基本原理、使用方法以及一些常见的应用场景。 ### 1. jQuery Autocomplete 基本原理 jQuery Autocomplete是jQuery UI库的一个组件,它通过监听用户在输入框中的输入事件,...

    autocomplete 辅助的js

    实现 Autocomplete 的基本步骤 - **监听输入事件**:通常使用 JavaScript 的 `input` 或 `keyup` 事件来监听用户的输入行为。 - **获取输入值**:通过 `document.getElementById('inputId').value` 获取当前输入框...

    PHP jquery autocomplete实现

    -- jQuery Autocomplete相关代码将放在这里 --&gt; ``` 2. **设置Autocomplete**: 创建一个输入框,并为其设置Autocomplete。我们需要指定数据来源,可以是JSON格式的数据流,也可以是从服务器获取的动态数据。 `...

Global site tag (gtag.js) - Google Analytics