ajax实现文本框的联想功能
先写一个jsp通过ajax传值给servlet进行查询再传给对应的div进行显示。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>联想搜索功能</title>
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){ $("input[name=uname]").css({
"position":"relative"
}); $("#lns").css({
"border":"1px #ccc solid",
"width":"171px",
"position":"absolute",
"top":"84px",
"left":"72px",
"display":"none"
}); // 键盘松开的时候触发联想功能
$("input[name=uname]").keyup(function(){
var uname = $(this).val();
if(uname != ""){
$.ajax({
url:"Qservlet",
type:"post",
data:{"uname":uname},
dataType:"html",
async:true,
success:function(result){
$("#lns").show();
$("#lns").html(result); // 点击模糊列表的值,必须在这里写,其他位置不起作用
$("li").unbind("click").bind("click", function(){
$("input[name=uname]").val($(this).html());
$("input[name=uname]").focus();
$("#lns").hide();
}); // 点击其他地方的时候隐藏
//$("input[name=uname]").blur(function(){
// $("#lns").hide();
//});
}
});
}else{
$("#lns").html("");
$("#lns").hide();
}
}); });
</script>
<body>
<h3>输入框联想搜索功能</h3>
请输入:<input type="text" name="uname"><input type="button" value="搜索">
<div id="lns"></div>// 设置显示的位置
</body>
</html>
后台servlet接受数据引用dao层进行模糊查询,然后在传入显示的页面,然后在实现指定的div中进行显示
package Servlet; import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import dao.DBHelper;
import util.DBUtil; @WebServlet("/Qservlet")
public class Qservlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("okok");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String uname = request.getParameter("uname");
DBHelper dbh=new DBHelper();
List<String> list=dbh.queryScoreByName(uname);
for (String str : list) {
System.out.println(str);
}
request.setAttribute("unames", list);
request.getRequestDispatcher("divLns.jsp").forward(request, response);
}
}
dao层进行查询
package dao; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import util.DBUtil; public class DBHelper { public List<String> queryScoreByName(String name) {
// TODO 自动生成的方法存根
try{
List<String> list=new ArrayList<String>();
String sql="select * from t_corp$ where CORP_NAME LIKE '%"+name+"%'" ;
Connection conn1=DBUtil.getConn();
Statement stmt=conn1.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){ list.add(rs.getString(5));
}
return list;
}catch(Exception ex){
ex.printStackTrace(); return null;
} } }
显示的jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>联想搜索功能</title>
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$("ul").css({
"padding":"0px",
"margin":"0px",
"list-style":"none",
"width":"100%",
"text-align": "left",
}); $("li").css({
"padding":"0px",
"margin":"0px",
"width":"100%"
}); $("li").hover(
function(){
$(this).css({"background-color":"#ddd"});
},
function(){
$(this).css({"background-color":"#fff"});
}
);
});
</script>
<body>
<ul>
<c:forEach begin="1" end="3" items="${unames }" var="uname" step="1">
<li>${uname }</li>
</c:forEach>
</ul>
</body>
</html>
效果:

ajax实现文本框的联想功能的更多相关文章
- Web控件文本框Reset的功能
在前一篇中<怎样实现Web控件文本框Reset的功能>http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能.单个或 ...
- 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
步骤: 1.在文本框中输入内容时,触发keyup事件: 2.在keyup事件的处理方法中,通过Ajax调用控制器的方法: 3.在控制器方法中,搜索满足条件的数据,这里分页获取数据,且只取第一页的数据, ...
- 基于JQuery实现的文本框自动填充功能
1. 实现的方法 /* * js实现的文本框的自动完成功能 */ function doAutoComplete(textid,dataid,url){ $("#" + texti ...
- ASP.NET输入文本框自动提示功能
在ASP.NET Web开发中会经常用到自动提示功能,比如百度搜索.我们只要输入相应的关键字,就可以自动得到相似搜索关键字的提示,方便我们快速的输入关键字进行查询. 那么在ASP.NET中,如果我们需 ...
- Android开发系列(二十):AutoCompleteTextView(自己主动完毕文本框)的功能和使用方法
当用户输入一定的字符之后,自己主动完毕文本框可以显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView可以依照用户的选择自己主动填写该文本框 AutoCo ...
- 怎样实现Web控件文本框Reset的功能
在ASP.NET开发过程序,在数据插入之后,文本框TextBox控件需要Reset.如果只有一两个文件框也许没有什么问题,如果网页上有很多文本框,你就会有点问题了.再加上某一情形,一些文本框是有默认值 ...
- 转摘:ashx+jquery-autocomplete文本框输入提示功能Asp.net
引入所需文件 <script type="text/javascript" src="JS/jquery-1.8.2.min.js"></sc ...
- 利用JavaScript实现文本框改文字功能
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- 使用 jquery-autocomplete插件 完成文本框输入自动填充联想效果 解决兼容IE输入中文问题
项目中有时会用到ajax自动补全查询,就像Google的搜索框中那样,输入汉字或者字母的首个字母,则包含这个汉字或者字母的相关条目会显示出来供用户选择,该插件就是实现这样的功能的.autocomple ...
随机推荐
- JSON小记
json: { "1" : "2", "1" : "3" } 在json中如果有重复的key,会取最后一个key的值,如 ...
- 原生javascript实现选项卡(基础版)
一.实现原理 1.主要运用“排他思想”,在设置当前元素前,先把相应元素恢复到默认状态 2.给相应元素添加下标的应用 二.代码展示 <!DOCTYPE html> <html> ...
- VLC播放器的快捷键(shutcut)
ubuntu上的视频播放器功能简陋,不支持快慢速,于是需要一款播放器来替代它,从网上找了找,大家对VLC的评价出奇的一致, 于是试水了一下,发现功能确实强大,支持大多数多媒体文件以及各类流媒体协议 在 ...
- laravel配置加解密
基于安全考虑,我们php项目配置文件中密码应该是加密的,laravel中也提供了OpenSSL 的 AES-256-CBC 来进行加密 但是如果我们项目配置的是其他加密方式,且希望以最少的改动实现读取 ...
- selenium中的xpath用法,使用xpath定位元素
xpath路径选择器定位元素 1. xpath: 使用路径表达式来定位xml或者html中文档中选取节点.在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点( ...
- hadoop各版本hadoop.dll和winutils.exe缺少这两个文件
1.1 缺少winutils.exeCould not locate executable null \bin\winutils.exe in the hadoop binaries1.2 缺少had ...
- python 面向对象的内置方法
要求:了解即可,能用最好 """ 1.print(obj), str(obj), %s % (obj), 都调用obj.__str__()方法,若类中没有找__repr_ ...
- [bzoj4827] [洛谷P3723] [Hnoi2017] 礼物
Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是 ...
- ELK实战-elasticsearch安装
操作系统: centos版本 7.4 防火墙 关闭 selinux 关闭 elasticsearch版本 6.3.2 java版本 1.8 server1 192.168.10.126 server2 ...
- [校内训练20_01_19]ABC
1.SB题 2.有n个点,m条边,每次加入一条边,你要挑出一些边,使得形成的图每个点度数都为奇数,且最长的边最短. 3.给一个N次多项式,问有多少个质数在任意整数处的点值都是p的倍数,输出它们.$N ...