使用ajax实现自动提示效果
来源:互联网 发布:战略 知乎 编辑:程序博客网 时间:2024/06/06 23:16
1.提供一个servlet,动态的查询包含数据
publicclass AutoServletextends HttpServlet {
privatestaticfinallongserialVersionUID= 1L;
private List<String>list =new ArrayList<String>();
@Override
publicvoid init()throws ServletException {
//模拟数据库
for (int i = 1; i <=100; i++) {
String id = UUID.randomUUID().toString().replace("-","");
id=id.substring(0,10);
list.add(id);
}
}
@Override
publicvoid doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException {
doPost(req,resp);
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
request.setCharacterEncoding("UTF-8");
//获取用户提交的数据
String code = request.getParameter("code");
//list哪些有这个字符
//声明一个准备返回的list
List<String> res = newArrayList<String>();
for(String k:list){
if(k.contains(code)){
res.add(k);
}
}
//返回res
response.setContentType("text/html;charset=UTF-8");
//转成json
String json = JSONArray.toJSONString(res);
System.err.println("json is:"+json);
response.getWriter().print(json);
}
}
2:请求测试:
2.1.1(用的select显示)在ajax中发请求
<scripttype="text/javascript"src="<c:urlvalue='/js/xhr2.js'/>"></script>
<styletype="text/css">
#sel{
position:absolute;
top:32px;
left:74px;
visibility:hidden;
}
</style>
</head>
<body>
请输入:<inputtype="text"onkeyup="_show(this);"name="msg"><br/>
<selectid="sel"style="width:153px;height:200px;"size="6"ondblclick="_sel(this);">
</select>
</body>
<scripttype="text/javascript">
function_show(obj){
if(obj.value==""){
document.getElementById("sel").style.visibility="hidden";
}else{
var sel = document.getElementById("sel");
//删除以前的数据
sel.options.length=0;
//请求后台的数据
var ajax =newAjax();
ajax.post({
url:"<c:url value='/AutoServlet'/>",
param:"code="+obj.value,
succ:function(data){
for (var i = 0; i< data.length; i++) {
var txt = data[i];
//声明一个options
var opt=new Option(txt,txt);
sel.options.add(opt);
}
if(sel.options.length>0){
sel.style.visibility="visible";
}else{
sel.style.visibility="hidden";
}
},
xtype:"json"
});
}
}
function_sel(sl){
var index = sl.selectedIndex;
var opt= sl.options[index];
//获取前面的文本
var txt = opt.innerHTML;
document.getElementsByName("msg")[0].value=txt;
sl.style.visibility="hidden";
}
</script>
</html>
2.1.2效果图
2.2.1(用的div显示)在ajax中发请求div_auto.jsp
<scripttype="text/javascript"src="<c:urlvalue='/js/xhr2.js'/>"></script>
<styletype="text/css">
#sel{
position:absolute;
top:32px;
left:74px;
overflow:scroll;
}
#seldiv{
margin:2px;
color:blue;
cursor:hand;
width:100%;
font-size:10pt;
border:1px dotted gray;
}
</style>
</head>
<body>
请输入:<inputtype="text"onkeyup="_show(this);"name="msg"><br/>
<divid="sel"style="width:200px;height:200px;"ondblclick="_sel();"></div>
</body>
<scripttype="text/javascript">
function_show(obj){
if(obj.value==""||obj.value==null){
document.getElementById("sel").style.visibility="hidden";
}else{
//获取 div元素
var sel = document.getElementById("sel");
//判断div中的元素的个数
var len = sel.childNodes.length;
//删除div中的所有子元素
for(vari=len-1;i>=0;i--){
sel.removeChild(sel.childNodes[i]);
}
//准备请求ajax
var ajax =newAjax();
ajax.post({
url:"<c:url value='/AutoServlet'/>",
param:"code="+obj.value,
succ:function(data){
for(vari=0;i<data.length;i++){
var txt = data[i];
//创建div
var div = document.createElement("<DIV>");
//设置红色字体
txt =txt.replace(obj.value,"<font color=red>"+obj.value+"</font>");
// 添加文本
div.innerHTML=txt;
//添加到div中去
sel.appendChild(div);
}
//判断是否显示
if(sel.childNodes.length>0){
sel.style.visibility="visible";
}else{
sel.style.visibility="hidden";
}
},
xtype:"json"
});
}
}
</script>
</html>
2.2.2.效果图:
- 使用ajax实现自动提示效果
- AJAX实现文本框输入自动提示功能
- ajax+php实现自动提示文本框
- Ajax应用---实现自动提示功能
- 使用AjaxPro实现ajax效果
- 使用AjaxPro实现ajax效果
- 使用XMLHttpRequest 实现ajax效果
- 使用XMLHttpRequest 实现ajax效果
- 使用AjaxPro实现ajax效果
- 使用Struts实现Ajax效果
- 使用 AJAX 实现 打字效果 、、 、
- 不使用Ajax框架实现Ajax效果
- ajax聊天室原理实现网站更新信息提示效果
- asp实现Ajax百度搜索提示的效果
- AJAX(1)--自动提示
- Ajax 自动提示 AutoCompleteExtender
- Ajax自动提示功能
- Ajax搜索自动提示
- 编译原理-First集和Follow集
- 读书笔记Black-Scholes-Merton之一
- SQLHelper的使用
- 读精益创业(一)
- 子集标签
- 使用ajax实现自动提示效果
- Java的起源
- 函数调用机制例解
- 圆点博士Android编程系列之一:走进Android图形化编程软件MIT App Inventor
- MySQL索引的创建、删除和查看
- jcs、ehcache的配置及使用
- 各种排序算法的实现及其比较
- 实现上下滚动的TextView
- 新光盘不能直接用cdrecord或者wodim进行刻录,解决方法