var searchReq=createAjaxObj();
function createAjaxObj()
{
var httprequest=false;
if(window.XMLHttpRequest)
{
httprequest=new XMLHttpRequest();
if(httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml');
}
else if (window.ActiveXObject)
{
//IE
try
{
httprequest=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
httprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
return httprequest
}function searchSuggest()
{
if (document.getElementById('keyword').value.length>0)
{
var str=escape(document.getElementById('keyword').value);
url="/ajax_search.asp?search="+str+ "&t=" + new Date().getTime();
searchReq.open("get",url);
searchReq.onreadystatechange=handleSearchSuggest;
searchReq.send(null);
}
else
{
document.getElementById("search_suggest").innerHTML="";
document.getElementById("search_suggest").style.display="none";
}
}function handleSearchSuggest()
{
if(searchReq.readyState==4)
{
var ss=document.getElementById("search_suggest");
ss.innerHTML="";
s0=searchReq.responseText.length;
if (s0>0)
{
xmldoc=searchReq.responseXML;
var message_nodes=xmldoc.getElementsByTagName("message");
var n_messages=message_nodes.length;
if (n_messages<=0)
{
document.getElementById("search_suggest").innerHTML="";
document.getElementById("search_suggest").style.display="none";
}
else
{
document.getElementById("search_suggest").style.display="block";
for (i=0;i<n_messages;i++ )
{
var suggest='<div onmouseover="javascript:suggestOver(this);"';
suggest+='onmouseout="javascript:sugggestOut(this);"';
suggest+='onclick="javascript:setSearch(this.innerHTML);"';
suggest +='class="suggest_link">'+message_nodes[i].getElementsByTagName("text")[0].firstChild.data+'</div>';
ss.innerHTML +=suggest;
}
}
}
else
{
document.getElementById("search_suggest").innerHTML="";
document.getElementById("search_suggest").style.display="none";
}
}
else
{
//alert('网络连接失败');
}
}function suggestOver(div_value)
{
div_value.className='suggest_link_over';
}function sugggestOut(div_value)
{
div_value.className='suggest_link';
}function setSearch(div_value)
{
document.getElementById("keyword").value=div_value;
document.getElementById("search_suggest").innerHTML="";
document.getElementById("search_suggest").style.display="none";
}
上面是js代码,求高手帮忙加一个键盘上下回车事件进去,现在只支持鼠标操作,不支持键盘。地址:www.bbmoo.com
分不多,请热心人士帮帮忙....
在onkeypress事件触发时if(event.keyCode == "键盘值得")
{
具体操作
}
和回车 选中!
{
var iKeyCode=oEvent.keyCode;if(iKeyCode==8||iKeyCode==46) //backspace and delete
{
sendRequest(keyword); //send request
}else if(iKeyCode<32||(iKeyCode>=33 && iKeyCode<=46)||(iKeyCode>=112 && iKeyCode<=123)){
//tab,shift ctrl,alt etc || page up,page down,end,home tec || f1~f12 ingore
}
else
sendRequest(keyword); //send request}
{
switch(oEvent.keyCode)
{
case 38://up case 40://down case 27://esc
case 13://enter }
}
具体请参考《Ajax高级程序设计》的第七章 p202,p199