本案例采用jQuery实现动态搜索显示功能,只要输入值就能立刻动态显示数据,不同于常规查询方法。
模拟效果如下:
1、 2、
<%
@ page language
=
"
java
"
pageEncoding
=
"
UTF-8
"
%>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >
< head >
< title > struts2 </ title >
< meta http - equiv = " pragma " content = " no-cache " >
< meta http - equiv = " cache-control " content = " no-cache " >
< meta http - equiv = " expires " content = " 0 " >
< script type = " text/javascript " src = " <%=request.getContextPath() %>/js/jquery-1.4.1.js " ></ script >
< script type = " text/javascript " >
// 数据源,json的格式.
var user = [{ " id " : 1 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 2 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 3 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 4 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 5 , " name " : " 老张 " , " age " : " 25 " },
{ " id " : 6 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 7 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 8 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 9 , " name " : " abc " , " age " : " 25 " },
{ " id " : 10 , " name " : " 李b四 " , " age " : " 35 " },
{ " id " : 11 , " name " : " 125 " , " age " : " 20 " },
{ " id " : 12 , " name " : " 246 " , " age " : " 20 " },
{ " id " : 13 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 14 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 15 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 16 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 17 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 18 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 19 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 20 , " name " : " 老王 " , " age " : " 20 " }];
$(document).ready(function(){
var seach = $( " #seach " );
seach.keyup(function(event){
// var keyEvent=event || window.event;
// var keyCode=keyEvent.keyCode;
// 数字键:48-57
// 字母键:65-90
// 删除键:8
// 后删除键:46
// 退格键:32
// enter键:13
// if((keyCode>=48&&keyCode<=57)||(keyCode>=65&&keyCode<=90)||keyCode==8||keyCode==13||keyCode==32||keyCode==46){
// 获取当前文本框的值
var seachText = $( " #seach " ).val();
if (seachText != "" ){
// 构造显示页面
var tab = " <table width='300' border='1' cellpadding='0' cellspacing='0'><tr align='center'><td>编号</td><td>名称</td><td>年龄</td></tr> " ;
// 遍历解析json
$.each(user,function(id, item){
// 如果包含则为table赋值
if (item.name.indexOf(seachText) !=- 1 ){
tab += " <tr align='center'><td> " + item.id + " </td><td> " + item.name + " </td><td> " + item.age + " </td></tr> " ;
}
})
tab += " </table> " ;
$( " #div " ).html(tab);
// 重新覆盖掉,不然会追加
tab = " <table width='300' border='1' cellpadding='0' cellspacing='0'><tr align='center'><td>编号</td><td>名称</td><td>年龄</td></tr> " ;
} else {
$( " #div " ).html( "" );
}
// }
})
});
</ script >
</ head >
< body >
名字: < input id = " seach " />
< br />< br />
< div id = " div " ></ div >
</ body >
</ html >
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >
< head >
< title > struts2 </ title >
< meta http - equiv = " pragma " content = " no-cache " >
< meta http - equiv = " cache-control " content = " no-cache " >
< meta http - equiv = " expires " content = " 0 " >
< script type = " text/javascript " src = " <%=request.getContextPath() %>/js/jquery-1.4.1.js " ></ script >
< script type = " text/javascript " >
// 数据源,json的格式.
var user = [{ " id " : 1 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 2 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 3 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 4 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 5 , " name " : " 老张 " , " age " : " 25 " },
{ " id " : 6 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 7 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 8 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 9 , " name " : " abc " , " age " : " 25 " },
{ " id " : 10 , " name " : " 李b四 " , " age " : " 35 " },
{ " id " : 11 , " name " : " 125 " , " age " : " 20 " },
{ " id " : 12 , " name " : " 246 " , " age " : " 20 " },
{ " id " : 13 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 14 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 15 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 16 , " name " : " 老王 " , " age " : " 20 " },
{ " id " : 17 , " name " : " 张三 " , " age " : " 25 " },
{ " id " : 18 , " name " : " 李四 " , " age " : " 35 " },
{ " id " : 19 , " name " : " 王五 " , " age " : " 20 " },
{ " id " : 20 , " name " : " 老王 " , " age " : " 20 " }];
$(document).ready(function(){
var seach = $( " #seach " );
seach.keyup(function(event){
// var keyEvent=event || window.event;
// var keyCode=keyEvent.keyCode;
// 数字键:48-57
// 字母键:65-90
// 删除键:8
// 后删除键:46
// 退格键:32
// enter键:13
// if((keyCode>=48&&keyCode<=57)||(keyCode>=65&&keyCode<=90)||keyCode==8||keyCode==13||keyCode==32||keyCode==46){
// 获取当前文本框的值
var seachText = $( " #seach " ).val();
if (seachText != "" ){
// 构造显示页面
var tab = " <table width='300' border='1' cellpadding='0' cellspacing='0'><tr align='center'><td>编号</td><td>名称</td><td>年龄</td></tr> " ;
// 遍历解析json
$.each(user,function(id, item){
// 如果包含则为table赋值
if (item.name.indexOf(seachText) !=- 1 ){
tab += " <tr align='center'><td> " + item.id + " </td><td> " + item.name + " </td><td> " + item.age + " </td></tr> " ;
}
})
tab += " </table> " ;
$( " #div " ).html(tab);
// 重新覆盖掉,不然会追加
tab = " <table width='300' border='1' cellpadding='0' cellspacing='0'><tr align='center'><td>编号</td><td>名称</td><td>年龄</td></tr> " ;
} else {
$( " #div " ).html( "" );
}
// }
})
});
</ script >
</ head >
< body >
名字: < input id = " seach " />
< br />< br />
< div id = " div " ></ div >
</ body >
</ html >