输入联想 输入关键字 显示下拉包含关键字的文字
来源:互联网 发布:怎样通过网络发短信 编辑:程序博客网 时间:2024/05/21 10:29
<script type="text/javascript" language="javascript">
var IE = new Function('', 'if(navigator.appName.indexOf("Explorer")>=0)return true;if(navigator.appName.indexOf("Netscape")>=0)return false');
var sou = function () {
var shuru = document.getElementById("txtKeyWords");
var shuchu = document.getElementById("ss");
var sxPress = false;
var oldValue;
shuchu.onmouseover = function (e) {
e || (e = window.event);
var eveSrc = (typeof e.target != "undefined") ? e.target : e.srcElement;
eveSrc = eveSrc.tagName == "SPAN" ? eveSrc.parentNode : eveSrc;
if (eveSrc.tagName == "LI") {
var eveParent = eveSrc.parentNode;
for (i = 0; i < eveParent.childNodes.length; i++)
eveParent.childNodes[i].className = "";
eveSrc.className = "hov";
}
} //end onmouseover
function down(e) {
e || (e = window.event);
var eveSrc = (typeof e.target != "undefined") ? e.target : e.srcElement;
if (eveSrc.tagName == "LI") {
if (eveSrc.parentNode.parentNode.id == "ss") {
shuru.value = eveSrc.firstChild.data;
$('#btnSearch').click();
return;
}
}
if (eveSrc == shuru) return;
shuchu.style.visibility = "hidden";
} //end down
document.onmousedown = down;
shuru.onkeydown = function (e) {
e || (e = window.event);
switch (e.keyCode) {
case 13: $('#btnSearch').click(); return false;
case 40:
if (shuchu.style.visibility == "hidden") return;
sxPress = true;
var ele = shuchu.firstChild.childNodes;
var thisEle = new Object();
for (i = 0; i < ele.length; i++)
if (ele[i].className == "hov")
{ thisEle = ele[i]; break; }
if (typeof thisEle.className == "undefined") {
thisEle = ele[0];
thisEle.className = "hov";
shuru.value = thisEle.firstChild.data;
return;
}
thisEle.className = "";
if (thisEle == ele[ele.length - 1]) { shuru.value = oldValue; return; }
shuru.value = thisEle.nextSibling.firstChild.data;
thisEle.nextSibling.className = "hov";
break;
case 38:
if (shuchu.style.visibility == "hidden") return;
sxPress = true;
var ele = shuchu.firstChild.childNodes;
var thisEle = new Object();
for (i = 0; i < ele.length; i++)
if (ele[i].className == "hov")
{ thisEle = ele[i]; break; }
if (typeof thisEle.className == "undefined") {
thisEle = ele[ele.length - 1];
thisEle.className = "hov";
shuru.value = thisEle.firstChild.data;
return;
}
thisEle.className = "";
if (thisEle == ele[0]) { shuru.value = oldValue; return; }
shuru.value = thisEle.previousSibling.firstChild.data;
thisEle.previousSibling.className = "hov";
break;
default:
if (!IE())
change();
sxPress = false;
break;
}
} //end onkeyup
shuru.onpropertychange = change;
shuru.oninput = change;
function change()//生成相关搜索
{
if (!sxPress) oldValue = shuru.value;
else return;
if (shuru.value != "" && shuru.value != "输入您想要的商品") {
var url1 = "<%=WebSite %>hander/Getkeywords.ashx?keywords=" + escape(shuru.value) + "";
$.ajax({
type: "GET",
url: url1,
success: function (msg) {
var detail;
detail = msg.split("||");
var str = "";
if (detail.length == 2 && shuru.value == detail[0])
{ str = ""; }
else {
for (i = 0; i < detail.length - 1; i++) {
str += "<li>" + detail[i] + "</li>";
}
}
shuchu.style.visibility = "visible";
shuchu.innerHTML = "<ul>" + str + "</ul>";
if (str == "")
shuchu.innerHTML = "";
}
})
} else {
shuchu.style.visibility = "hidden";
}
} //end change
}
function checkKeyWords() {
if ($("#txtKeyWords").val() == "输入您想要的商品" || (new RegExp("^\[ \t]*$").test($("#txtKeyWords").val()))) {
alert("请输入要搜索的关键字!");
return false;
}
return true;
}
</script>
<div id="s">
<input maxlength="30" name="txtKeyWords" id="txtKeyWords" autocomplete="off" class="searchclass"
value="输入您想要的商品" onkeyup="this.className=''" " onclick="if(this.value=='输入您想要的商品')this.value=''; sou();"
style="vertical-align: bottom; width: 100%; font-size: 14px; border: 0px" />
<div id="ss">
</div>
</div>
div#s {position: relative;z-index:500; }
div #ss {z-index:500; position: absolute;width: 101%;visibility: hidden;left: 0px;top: 22px;}
div #ss ul {border: 1px solid #000000;text-align: left;}
div #ss li {
position: relative;
width: 100%;
background-color: #FFFFFF;
cursor: default;
line-height: 18px;
font-size: 14px;
}
div#ss li.hov {background-color: #6666FF;color: #FFFFFF;}
div#ss UL {list-style-type: none;}
<form id="form1" runat="server">
<%--解决 当按下回车抢占ImageButton的点击事件的问题 勿删除!--%>
<div style="width: 0px; height: 0px;">
<input type="image" style="width: 0px; height: 0px; display: none" onclick="return false" /></div>
可以参考http://dlstu.cn/code/article/Code/814.htm
- 输入联想 输入关键字 显示下拉包含关键字的文字
- 下拉列表框输入文字时和已经输入的文字最匹配的项自动显示列出
- (转)Combobox 输入的关键字模糊下拉出相应的内容
- (转)Combobox 输入的关键字模糊下拉出相应的内容
- 请输入关键字
- 请输入关键字
- 关键字输入框js
- JQuery实现“请输入关键字”文本框的输入特效
- html中输入框中“请输入关键字”的设置
- 显示文字与输入
- textbox中输入关键字,datagrid显示相应信息
- 输入淘宝ID关键字显示内容(采用Thread+handle)
- 输入框:请输入关键字 小功能
- lucene 查询时输入的关键字中包含的词必须出现才被查询出来实现
- 联想输入
- 输入一段文字,计算其包含的字符总数
- 最便捷通用的可输入文字的下拉框
- ASPxComoBox的联想输入功能
- iFakeSiri:随心所欲自制Siri对话
- extjs源码分析-007(Ext.each)
- tomcat server options
- hibernate基础 类与接口介绍
- ExtJS Ext.MessageBox.alert()弹出对话框详解
- 输入联想 输入关键字 显示下拉包含关键字的文字
- 上传图片 出现错误:413 Request Entity Too Large
- Servlet和Filter的url匹配以及url-pattern详解
- int,NSInteger,NSUInteger,NSNumber
- helper类
- 字符串逆置
- asp.net 把后台数据赋值给js的变量的方法
- BIOS中隐藏Telnet后门
- 1.CXF:简介