+ -
当前位置:首页 → 问答吧 → 请教一个jquery仿google suggest的问题

请教一个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>内容的预期结果。
请问我的问题在哪里?怎样来调整?  
谢谢!

  
  
   

作者: HaoLin_Xia   发布时间: 2010-10-19

这个问题是在IE下发生的吧
http://blog.csdn.net/cj205/archive/2010/10/19/5951255.aspx
看看这个

作者: cj205   发布时间: 2010-10-19

是在ie8下發生的。

作者: HaoLin_Xia   发布时间: 2010-10-19