- 浏览: 280770 次
- 性别:
- 来自: 哈尔滨
文章分类
最新评论
-
netfengxia:
这个是Mybatis哦. 是一个ORM框架, 这里展示的是My ...
mybatis merge 语句使用 -
MILLETS:
好像没有效果
jsp页面打印、预览、设置实现方案 -
evic520:
mysql有merge into的用法?是不是标题错了 楼主? ...
mybatis merge 语句使用 -
winner_king:
解决问题
pager-taglib分页中文乱码问题 -
Renee涟漪:
...
SVN搭建
- /**
- * Servlet
- */
- package com.wll.autoComplete;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- * 自动补全功能
- * 接收用户端请求
- * @author wll
- *
- */
- public class AutoComplete extends HttpServlet {
- protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
- //表示页面传过来的字符串,用于和服务器端的单词进行完整匹配
- String word = request.getParameter("word");
- //将字符串保存在request对象中
- request.setAttribute(Contants.PARAM, word);
- //将请求转发给视图层(注意AJAX中,这个所谓的视图层不返回页面,只返回数据,所以也可以称作是一个数据层)
- request.getRequestDispatcher("wordxml.jsp").forward(request, response);
- }
- protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
- doGet(request,response);
- }
- }
/** * Servlet */ package com.wll.autoComplete; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 自动补全功能 * 接收用户端请求 * @author wll * */ public class AutoComplete extends HttpServlet { protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { //表示页面传过来的字符串,用于和服务器端的单词进行完整匹配 String word = request.getParameter("word"); //将字符串保存在request对象中 request.setAttribute(Contants.PARAM, word); //将请求转发给视图层(注意AJAX中,这个所谓的视图层不返回页面,只返回数据,所以也可以称作是一个数据层) request.getRequestDispatcher("wordxml.jsp").forward(request, response); } protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
- /**
- *
- */
- package com.wll.autoComplete;
- /**
- * 常类
- *
- * @author wll
- *
- */
- public class Contants {
- public static final String PARAM = "param";
- private Contants() {
- }
- }
/** * */ package com.wll.autoComplete; /** * 常类 * * @author wll * */ public class Contants { public static final String PARAM = "param"; private Contants() { } }
- <%@ page language="java" import="java.util.*"
- pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>JQuery自动补全</title>
- <script type="text/javascript" src="js/jquery.js"></script>
- <script type="text/javascript" src="js/jqueryAuto.js"></script>
- </head>
- <body>
- JQuery实例-自动补全:<input type="text" id="word" name="word" />
- <input type="button" id="buttonSubmit"
- name="buttonSubmit" value="提交" /><br />
- <div id="auto"></div>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JQuery自动补全</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jqueryAuto.js"></script> </head> <body> JQuery实例-自动补全:<input type="text" id="word" name="word" /> <input type="button" id="buttonSubmit" name="buttonSubmit" value="提交" /><br /> <div id="auto"></div> </body> </html>
- <!-- ajax自动补全实例 -->
- <!-- 与传统应用的视图层不同,这个jsp返回的是xml数据,因此contentType值是text/xml -->
- <%@ page language="java" contentType="text/xml;charset=utf-8" %>
- <%@page import="com.wll.autoComplete.Contants,java.util.*"%>
- <!-- 返回xml数据的'视图层暂时不做任何逻辑判断,先所有单词都返回,
- 待前后台应用可以完整的协作之后 ,再限制返回的内容' -->
- <%
- //页面传送的字符串
- String word = (String)request.getAttribute(Contants.PARAM);
- List list = new ArrayList();
- list.add("absolute");
- list.add("anyone");
- list.add("apple");
- list.add("abandon");
- list.add("breach");
- list.add("break");
- list.add("bad");
- list.add("char");
- list.add("create");
- list.add("delete");
- list.add("java");
- list.add("attribute");
- %>
- <words>
- <%
- for(int i = 0;i < list.size();i ++) {
- if(list.get(i).toString().startsWith(word)) {%>
- <word><%=list.get(i)%></word>
- <%}}%>
- </words>
<!-- ajax自动补全实例 --> <!-- 与传统应用的视图层不同,这个jsp返回的是xml数据,因此contentType值是text/xml --> <%@ page language="java" contentType="text/xml;charset=utf-8" %> <%@page import="com.wll.autoComplete.Contants,java.util.*"%> <!-- 返回xml数据的'视图层暂时不做任何逻辑判断,先所有单词都返回, 待前后台应用可以完整的协作之后 ,再限制返回的内容' --> <% //页面传送的字符串 String word = (String)request.getAttribute(Contants.PARAM); List list = new ArrayList(); list.add("absolute"); list.add("anyone"); list.add("apple"); list.add("abandon"); list.add("breach"); list.add("break"); list.add("bad"); list.add("char"); list.add("create"); list.add("delete"); list.add("java"); list.add("attribute"); %> <words> <% for(int i = 0;i < list.size();i ++) { if(list.get(i).toString().startsWith(word)) {%> <word><%=list.get(i)%></word> <%}}%> </words>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>AutoComplete</servlet-name>
- <servlet-class>com.wll.autoComplete.AutoComplete</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>AutoComplete</servlet-name>
- <url-pattern>/autoComplete</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>AutoComplete</servlet-name> <servlet-class>com.wll.autoComplete.AutoComplete</servlet-class> </servlet> <servlet-mapping> <servlet-name>AutoComplete</servlet-name> <url-pattern>/autoComplete</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
- //表示当前高亮的节点
- var highlightindex = -1;
- var timeoutId;
- $(document).ready(function(){
- var wordInput = $('#word');
- var wordInputOffset = wordInput.offset();
- //自动补全框最开始应该隐藏起来
- $('#auto').hide().css('border','1px black solid');
- //设置div的位置
- $('#auto').css('position','absolute');
- $('#auto').css('top',wordInputOffset.top + wordInput.height() + 5 + 'px');
- $('#auto').css('left',wordInputOffset.left + 'px');
- $('#auto').width(wordInput.width() + 6);
- //给文本框添加键盘按下并弹起事件
- wordInput.keyup(function(event) {
- //处理文本框的键盘事件
- var myEvent = event || window.event;
- var keyCode = myEvent.keyCode;
- //如果输入的是字母,应该将文本框中最新的信息发送给服务器端
- //如果输入的是退格键或删除键,也应该像文本框中的最新信息发送给服务器端
- if(keyCode >= 65 && keyCode <=90 || keyCode == 8 ||keyCode == 46) {
- //1.首先获取文本框中的内容
- var wordText = $('#word').val();
- // 取得auto结点
- var autoNode = $('#auto');
- if(wordText != '') {
- //对上次未完成的延时操作进行取消
- clearTimeout(timeoutId);
- //对于服务器端进行交互延迟500ms,避免快速打字造成的频繁请求
- timeoutId = setTimeout(function(){
- //2.将文本框中的内容发送给服务器
- $.post("autoComplete",{
- word:wordText
- },function(data){
- //将dom对象data转换成JQuery的对象
- var jqueryObj = $(data);
- //找到所有的word节点
- var wordNodes = jqueryObj.find('word');
- //需要清空原来的内容
- autoNode.html('');
- //遍历所有的word节点,取出单词内容,然后将单词内容添加到弹出框中
- wordNodes.each(function(i){
- //获取单词内容
- var wordNode = $(this);
- //新建div节点
- //将新建的节点加入到弹出框的节点中
- var newDivNode = $('<div>').attr('id',i);
- newDivNode.html(wordNode.text()).appendTo(autoNode);
- //增加鼠标进入事件,高亮节点
- newDivNode.mouseover(function(){
- //将原来高亮的节点取消高亮
- if(highlightindex != -1) {
- $('#auto').children('div').eq(highlightindex)
- .css('background-color','white');
- }
- //记录新的高亮索引
- highlightindex = $(this).attr('id');
- //鼠标进入的节点高亮
- $(this).css('background-color','red');
- });
- //增加鼠标移出事件,取消高亮节点
- newDivNode.mouseout(function(){
- $(this).css('background-color','white');
- });
- //增加鼠标点击事件,可以进行补全
- newDivNode.click(function(){
- //取出高亮节点的文本内容
- var comText = $(this).text();
- $('#auto').hide();
- highlightindex = -1;
- //将文本框中的内容变成高亮节点的内容
- $('#word').val(comText);
- });
- });
- //如果服务器端有数据返回,则显示弹出框
- if(wordNodes.length > 0) {
- autoNode.show();
- } else {
- //如果服务器端没有数据返回
- autoNode.hide();
- }
- },
- 'xml');
- },500);
- } else {
- autoNode.hide();
- //弹出框隐藏的同时,高亮节点索引值也置成-1
- highlightindex = -1;
- }
- } else if(keyCode == 38 || keyCode == 40) {
- //如果输入的是向上38向下40按键
- if (keyCode == 38) {
- //向上
- var autoNodes = $('#auto').children('div');
- if(highlightindex != -1) {
- //如果存在高亮节点,则将背景色改为白色
- autoNodes.eq(highlightindex).css('background-color','white');
- highlightindex = highlightindex - 1;
- } else {
- highlightindex = autoNodes.length - 1;
- }
- if(highlightindex == -1) {
- //如果修改索引值以后index变成-1,则将索引值指向最后一个元素
- highlightindex = autoNodes.lenght - 1;
- }
- //让现在的高亮的内容变成红色
- autoNodes.eq(highlightindex).css('background-color','red');
- }
- if (keyCode == 40) {
- //向下
- var autoNodes = $('#auto').children('div');
- if(highlightindex != -1) {
- //如果存在高亮节点,则将背景色改为白色
- autoNodes.eq(highlightindex).css('background-color','white');
- }
- highlightindex = highlightindex + 1;
- if(highlightindex == autoNodes.length) {
- //如果修改索引值以后index变成-1,则将索引值指向最后一个元素
- highlightindex = 0;
- }
- //让现在的高亮的内容变成红色
- autoNodes.eq(highlightindex).css('background-color','red');
- }
- } else if(keyCode == 13) {
- //如果输入的是回车
- //下拉框有高亮内容
- if(highlightindex != -1) {
- //取出高亮节点的文本内容
- var comText = $('#auto').hide().children('div')
- .eq(highlightindex).text();
- highlightindex = -1;
- //将文本框中的内容变成高亮节点的内容
- $('#word').val(comText);
- } else {
- //下拉框无高亮内容
- alert('没有选择高亮内容');
- $('#auto').hide();
- //让文本框失去焦点
- $('#word').get(0).blur();
- }
- }
- });
- //给按钮添加事件,表示文本框中的数据被提交$("input[type]='button']")
- $('#buttonSubmit').click(function(){
- alert('文本框中的【' + $('#word').val() + '】被提交了');
- }) ;
- });
- AutoComplete.rar (50.1 KB)
- 下载次数: 23
发表评论
-
jquery判断方法是否存在
2014-03-21 13:45 741if($.isFunction(window.checkho ... -
jquery+ajax+后台级联
2013-11-26 16:21 906$(document).ready(function(){ ... -
jquery.jmpopups弹出层改造成post提交
2013-03-22 09:01 2398/** * jmpopups * Copyright ... -
jquery判断对象是否存在
2013-03-20 11:03 755if($("#"+id)[0]) 或者 ... -
jquery+jstl实际应用
2012-11-28 13:40 1950<%@ page language="java ... -
jqueryapi
2012-05-18 17:20 891jquery1.6api -
jquery--checkbox全选
2012-05-17 14:47 849//挂全选事件-系统权限 $('#sysPowerAll' ... -
jquery css设置
2012-05-16 14:30 905和css有关的方法有这些:1、.addClass( ... -
jquery树
2012-05-04 10:09 8721 -
弹出层jquery.jmpopups
2011-11-14 17:21 1651可以弹出多层,引用 <script type=&quo ... -
jquery 加载完图片,获取大小
2011-11-07 16:54 2585//图片插件 $(document).ready(funct ... -
jquery获取图片尺寸
2011-11-04 17:19 23499例如 <img src="bag001.jpg ... -
JQuery判断radio是否选中,获取选中值
2011-11-04 15:42 1012/*---------------------------JQ ... -
jquery ajax json 模态对话框(转载)
2011-05-17 09:37 1573service层代码代码 public JSONArr ... -
jquery实际项目应用
2011-04-02 14:36 1487<%@ page contentType=&quo ... -
jQuery formValidator表单验证插件常见问题
2011-04-01 11:01 6572如何实现一个控件,根据不同的情况,实现不同的控制? 一个页 ... -
jquery设置select控件的selected属性
2011-03-31 16:53 1694$("#selectID option[val ... -
jquery设置元素的readonly和disabled
2011-03-31 16:33 1022Jquery的api中提供了对元素应用disabled和r ... -
jQuery Ajax 实例 全解析 (转载)
2010-10-28 22:43 956jQuery Ajax 实例 全解析 ... -
ajax教程-1
2010-10-25 09:56 1772一、Ajax介绍: Ajax是 ...
相关推荐
Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换)
一款非常使用的英文自能自动补全工具内置英语现代词库,中英操作界面转换。能自动补全输入的相关词汇,如果不记得该词汇的组成,他能为您提供该词汇的模糊查询,只要匹配该结构的可以给予提示。与该词汇相关的的词组...
NULL 博文链接:https://nopainnogain.iteye.com/blog/837743
为vim配置python自动补全和tab缩进自动转换为空格等功能
仿照谷歌搜索的自动补全功能,过程版本。json 数据操作ashx 数据输出。dataset 转json 等其他方法实现json
webService服务返回XML数据,通过工具XML转JSON数据绑定JQUERY自动实例扩展函数,达到自动补全的功能
自己做的Java工具类。可以对IPv6地址的格式进行校验,对IPv6地址的压缩、补全,以及从16进制转换为2进制和从2进制转换为16进制。
NULL 博文链接:https://nopainnogain.iteye.com/blog/837690
代码如下: Function closeHTML(strContent) Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match Set re = New RegExp re.IgnoreCase = True re.Global = True arrTags = Array(“p”, “div”, “span”, ...
kubectl-fzf为kubectl提供了快速而强大的fzf自动补全功能。 目录 产品特点 与kubectl自动完成功能无缝集成 次秒完成 标签自动补全 自动名称空间切换 要求 转到(最低版本1.12) 安装 缓存构建器 本地安装 安装cache...
打字稿自动完成对 。 安装 首先 。 $ pack install maralla/completor-typescript Plug ' maralla/completor-typescript ' 尖端 更改tsserver位置: let g: completor_tsserver_binary = ' /path/to/tsserver ' 转...
主要介绍了VSCode插件开发全攻略之跳转到定义、自动补全、悬停提示,需要的朋友可以参考下
配置要在其中使用自动补全的CKEditor字段(例如主体),并选中相应的框以使用所需的操作 开始编辑CKEditor字段并为激活的自动完成操作键入任何开头字符 客制化 该模块带有一个默认的(丑陋的)css来为选择对话框...
LaTeX自动补全功能,用于从CWL文件生成的崇高文字 该存储库提供: .sublime-completions文件,其中包含许多预先制作的供您使用的补全 可用作自动完成输入的CWL文件的集合 Python代码将CWL文件转换为Sublime文本....
软件还支持代码自动完成,支持代码片段插入(方便程序员、编辑人员,它能帮助你快速高效的生成部分代码),支持编辑远程文件(利用内置的 FTP工具直接对文件进行在线编辑修改),对于Web开发,PSPad的菜单“网页”...
在sql中建立函数,将ip地址段长度不够3位的左补零 如12.33.121.44 -> 012.033.121.044
直接从群里下载转传而已。 emacsGo智能提示配置
freemarker实现自动补齐字符串。通过ftl模版文件(ftl文件为freemarker模版文件)的自定义标签实现自动补齐字符串。代码稍作修改便可左补齐右补齐左右补齐,可自定义设置补齐的字符串。测试通过java文件调用ftl文件...
支持的纱线命令纱线运行脱纱纱线添加为什么纱您可以自定义yarn add的自动完成命令。 它是可配置的。安装手动地下载请转到页面并下载最新的二进制文件。 请注意,您应该根据操作系统选择正确的文件。添加为Zsh插件解...