请教一个jquery仿google suggest的问题
时间:2010-10-19
来源:互联网
我jsp页面上放置了一下三个控件:
<div id="divAutoList" style="position: absolute; overflow: auto; background-color: #ffffff;top: 70px; left: 195px; width: 200px; height: 200px;"> </div>
<input type='text' size='30' style="width: 200px" id="txtQueryWord" name='txtQueryWord' value=''>
<input type='button' id="search" name="sch_btn" value="Search">
keyup 事件里的代码是这样写的:
var autoNode = $("#divAutoList")
$.post(ajaxProcessUrl, { KeyWord: wordText }, function(data) {
var jqueryObj = $(data);
var wordNodes = jqueryObj.find("KeyWord"); //xml节点名
autoNode.html("");
wordNodes.each(function(i) {
var wrodNode = $(this);
var newDivNode = $("<div>").attr("id", i);
newDivNode.html(wrodNode.text()).appendTo(autoNode);
}, "xml");
我用的是jdbc,其中用到了一个方法叫getName():
public String getName(String name) throws SQLException {
Connection con = null;
Statement st = null;
ResultSet rs = null;
StringBuffer sb = null;
String queryStr = "select stu_name from student where stu_name like '%"
+ name + "%' order by stu_name ";
try {
con = JdbcUtil.getAccessConnection();
st = con.createStatement();
rs = st.executeQuery(queryStr);
sb = new StringBuffer(300);
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
sb.append("<Results>");
while (rs.next()) {
//tmp_name += rs.getString(1) + ",";
sb.append("<KeyWord>" + rs.getString(1) + "</KeyWord>");
}
sb.append("</Results>");
} catch (Exception e) {
e.printStackTrace();
throw new SQLException(e.getMessage());
} finally {
JdbcUtil.close(st, con);
}
return sb.toString().trim();
}
在jsp页面上的执行getName()的代码是这样写的:
<%
String txtQueryWord = request.getParameter("KeyWord");
System.out.print(txtQueryWord);
StudentDAO studao=new StudentDAO();
String str = studao.getName(txtQueryWord);
response.setContentType("text/xml");
out.write(str);
//System.out.println(str);
out.flush();
%>
用的jquery版本是1.4.3。
现在的问题是:$.post()方法中最后一个参数写成‘xml’的话,$.post()方法不执行。写成‘text’的话可以执行,但是
jQuery.find("KeyWord");获得不到值。在jsp页面用System.out.print(str);可以在后台看到从数据库中查出的结果:
<?xml version="1.0" encoding="utf-8" ?><Results><KeyWord>xuejy</KeyWord><KeyWord>yaoke</KeyWord><KeyWord>yaya</KeyWord></Results>。
不知道是怎么回事?
在keyup事件中alert回调函数的data 结果是整个jsp页面。于是在jsp页面上多增加了几个<h1>标签,用jQuery.find("h1");
结果在文本框输入文字时可以弹出<h1>标签的内容,得到<h1>内容的预期结果。
请问我的问题在哪里?怎样来调整?
谢谢!
<div id="divAutoList" style="position: absolute; overflow: auto; background-color: #ffffff;top: 70px; left: 195px; width: 200px; height: 200px;"> </div>
<input type='text' size='30' style="width: 200px" id="txtQueryWord" name='txtQueryWord' value=''>
<input type='button' id="search" name="sch_btn" value="Search">
keyup 事件里的代码是这样写的:
var autoNode = $("#divAutoList")
$.post(ajaxProcessUrl, { KeyWord: wordText }, function(data) {
var jqueryObj = $(data);
var wordNodes = jqueryObj.find("KeyWord"); //xml节点名
autoNode.html("");
wordNodes.each(function(i) {
var wrodNode = $(this);
var newDivNode = $("<div>").attr("id", i);
newDivNode.html(wrodNode.text()).appendTo(autoNode);
}, "xml");
我用的是jdbc,其中用到了一个方法叫getName():
public String getName(String name) throws SQLException {
Connection con = null;
Statement st = null;
ResultSet rs = null;
StringBuffer sb = null;
String queryStr = "select stu_name from student where stu_name like '%"
+ name + "%' order by stu_name ";
try {
con = JdbcUtil.getAccessConnection();
st = con.createStatement();
rs = st.executeQuery(queryStr);
sb = new StringBuffer(300);
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
sb.append("<Results>");
while (rs.next()) {
//tmp_name += rs.getString(1) + ",";
sb.append("<KeyWord>" + rs.getString(1) + "</KeyWord>");
}
sb.append("</Results>");
} catch (Exception e) {
e.printStackTrace();
throw new SQLException(e.getMessage());
} finally {
JdbcUtil.close(st, con);
}
return sb.toString().trim();
}
在jsp页面上的执行getName()的代码是这样写的:
<%
String txtQueryWord = request.getParameter("KeyWord");
System.out.print(txtQueryWord);
StudentDAO studao=new StudentDAO();
String str = studao.getName(txtQueryWord);
response.setContentType("text/xml");
out.write(str);
//System.out.println(str);
out.flush();
%>
用的jquery版本是1.4.3。
现在的问题是:$.post()方法中最后一个参数写成‘xml’的话,$.post()方法不执行。写成‘text’的话可以执行,但是
jQuery.find("KeyWord");获得不到值。在jsp页面用System.out.print(str);可以在后台看到从数据库中查出的结果:
<?xml version="1.0" encoding="utf-8" ?><Results><KeyWord>xuejy</KeyWord><KeyWord>yaoke</KeyWord><KeyWord>yaya</KeyWord></Results>。
不知道是怎么回事?
在keyup事件中alert回调函数的data 结果是整个jsp页面。于是在jsp页面上多增加了几个<h1>标签,用jQuery.find("h1");
结果在文本框输入文字时可以弹出<h1>标签的内容,得到<h1>内容的预期结果。
请问我的问题在哪里?怎样来调整?
谢谢!
作者: HaoLin_Xia 发布时间: 2010-10-19
这个问题是在IE下发生的吧
http://blog.csdn.net/cj205/archive/2010/10/19/5951255.aspx
看看这个
http://blog.csdn.net/cj205/archive/2010/10/19/5951255.aspx
看看这个
作者: cj205 发布时间: 2010-10-19
是在ie8下發生的。
作者: HaoLin_Xia 发布时间: 2010-10-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28