//suggest.js -------------------------------------- var browserType=0; var xmlHttp; var xmlDoc; function createXMLHttpRequest() { if(window.ActiveXObject) { browserType=1; xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } }
function suggest(e) { var key=e.value; var keyword= document.getElementById("tbSearch").value;//获取查询条件 selectObject = e;
if(key) {
var patrn=/^[^<,>,?,",:,;]*$/; //验证输入的内容是否合法 if (!patrn.exec(key)) { alert("不能输入非法字符!") ; e.value="";//清空输入的内容 return; } createXMLHttpRequest(); //search.ashx处理页面 返回XML var url= "search.ashx?keyword="+encodeURIComponent(keyword)+"&rnd="+Math.random(); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=showResult; xmlHttp.send(null); } }
function showResult() { if(xmlHttp.readyState==4) { if(xmlHttp.status==200) { xmlDoc = xmlHttp.responseXML; suggestShow(selectObject); } } } //显示信息 function suggestShow(e) {
var moneyMsg = document.getElementById("suggest"); var opn = "<ul class='suggestul'>"; var records = xmlDoc.getElementsByTagName("record").length; if(records>0) { for ( i = 0; i < records; i++) { opn += "<li class='suggestulli' onmouseover='this.style.backgroundColor=\"#c7dffa\";' onmouseout='this.style.backgroundColor=\"#FFFFFF\";' onclick='selectSuggest(this);'><span>"; opn += xmlDoc.getElementsByTagName("word")[i].firstChild.data; opn += "</span><span class='suggestSpan'>" + xmlDoc.getElementsByTagName("wordSpell")[i].firstChild.data + "</span></li>"; } opn += "<li class='suggestulli' onclick='suggestHidden();'><span> Desgin By Feiin </span><span class='suggestSpan'>关闭</span></li></ul><div style='clear:both;'></div>";
moneyMsg.innerHTML = opn;
var obj=document.getElementById("tbSearch"); if (browserType==1) {
var x = e.getBoundingClientRect().top; var y = e.getBoundingClientRect().left; document.getElementById("suggest").style.top= x+20+document.body.scrollTop+"px"; document.getElementById("suggest").style.left=y+document.body.scrollLeft+"px"; } else { var menu_leve2_content = findPos(e); document.getElementById("suggest").style.top=menu_leve2_content[1]+18+"px"; document.getElementById("suggest").style.left=menu_leve2_content[0]+"px"; } document.getElementById("suggest").style.display = "block"; //显示信息 } else { document.getElementById("suggest").style.display = "none";//显示信息 } }
function suggestHidden() { document.getElementById("suggest").style.display = "none"; //隐藏信息 }
function selectSuggest(obj) { var selectObj; if(browserType==1) { selectObj=obj.getElementsByTagName("span")[0].innerText;
现成的代码可就没有咯
--------------------------------------
var browserType=0;
var xmlHttp;
var xmlDoc;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
browserType=1;
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function suggest(e)
{
var key=e.value;
var keyword= document.getElementById("tbSearch").value;//获取查询条件
selectObject = e;
if(key)
{
var patrn=/^[^<,>,?,",:,;]*$/; //验证输入的内容是否合法
if (!patrn.exec(key))
{
alert("不能输入非法字符!") ;
e.value="";//清空输入的内容
return;
}
createXMLHttpRequest();
//search.ashx处理页面 返回XML
var url= "search.ashx?keyword="+encodeURIComponent(keyword)+"&rnd="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=showResult;
xmlHttp.send(null);
}
}
function showResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
xmlDoc = xmlHttp.responseXML;
suggestShow(selectObject);
}
}
}
//显示信息
function suggestShow(e)
{
var moneyMsg = document.getElementById("suggest");
var opn = "<ul class='suggestul'>";
var records = xmlDoc.getElementsByTagName("record").length;
if(records>0)
{
for ( i = 0; i < records; i++)
{
opn += "<li class='suggestulli' onmouseover='this.style.backgroundColor=\"#c7dffa\";' onmouseout='this.style.backgroundColor=\"#FFFFFF\";' onclick='selectSuggest(this);'><span>";
opn += xmlDoc.getElementsByTagName("word")[i].firstChild.data;
opn += "</span><span class='suggestSpan'>" + xmlDoc.getElementsByTagName("wordSpell")[i].firstChild.data + "</span></li>";
}
opn += "<li class='suggestulli' onclick='suggestHidden();'><span> Desgin By Feiin </span><span class='suggestSpan'>关闭</span></li></ul><div style='clear:both;'></div>";
moneyMsg.innerHTML = opn;
var obj=document.getElementById("tbSearch");
if (browserType==1)
{
var x = e.getBoundingClientRect().top;
var y = e.getBoundingClientRect().left;
document.getElementById("suggest").style.top= x+20+document.body.scrollTop+"px";
document.getElementById("suggest").style.left=y+document.body.scrollLeft+"px";
}
else
{ var menu_leve2_content = findPos(e);
document.getElementById("suggest").style.top=menu_leve2_content[1]+18+"px";
document.getElementById("suggest").style.left=menu_leve2_content[0]+"px";
}
document.getElementById("suggest").style.display = "block"; //显示信息
}
else
{
document.getElementById("suggest").style.display = "none";//显示信息
}
}
function suggestHidden()
{
document.getElementById("suggest").style.display = "none"; //隐藏信息
}
function selectSuggest(obj)
{
var selectObj;
if(browserType==1)
{
selectObj=obj.getElementsByTagName("span")[0].innerText;
}
else
{
selectObj=obj.getElementsByTagName("span")[0].textContent;
}
document.getElementById("tbSearch").value=selectObj;//tbSearch搜索栏TextBox
suggestHidden();
}function findPos(obj)
{
var curleft = curtop = 0;
if (obj.offsetParent)
{
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent)
{
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
------------------------
using System;
using System.Collections;
using System.Data;using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Text.RegularExpressions;
using System.Text;
namespace WebMyIdiom
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class search : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
string keyword = context.Request.QueryString["keyword"].Trim();
context.Response.ContentType = "text/xml";
context.Response.Write("<root>");
DataSet ds=SearchDataSet(keyword);
if (ds!=null)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
context.Response.Write("<record>");
context.Response.Write("<word>" + dr["Word"].ToString() + "</word><wordSpell>" + dr["wordSpell"].ToString() + "</wordSpell>");
context.Response.Write("</record>");
}
}
context.Response.Write("</root>");
} public bool IsReusable
{
get
{
return false;
}
}
public DataSet SearchDataSet(string keyWord)
{
DataSet ds =new DataSet();
string strReg = "^[a-zA-Z]+$";
Regex regex = new Regex(strReg);
MyIdiom.BLL.Word_table bWord = new MyIdiom.BLL.Word_table();
if (regex.IsMatch(keyWord))
{
ds = bWord.GetList("wordSpell like '%" + keyWord + "%'");
}
else
{
ds = bWord.GetList("Word like '%" + keyWord.Substring(0,1) + "%'");
}
return ds;
}
}
}
....
<input ID="tbSearch" runat="server" onkeyup="suggest(this);" autocomplete="off"/>
<div id="suggest"></div>
....//css
#suggest
{
position: absolute;
display: none;
z-index: 99;
font-size: 13px;
background:#FFFFFF;
width:250px;
}
#tbSearch
{
width:250px;
height:18px;
margin-bottom:10px!important;
margin-bottom:5px;
}
.suggestul{
border:1px solid #000;
width:252px;
padding:0px;
list-style:none;
}
.suggestulli
{
line-height:16px;
font-size:12px;
padding:2px;
cursor:hand;
text-align: left;
}
.suggestSpan
{
float:right;
font-size:12px;
color:#008000;
margin-top:-18px;
margin-right:5px;
}