JS实现文本框输入文字就能选出下拉框中含这个字的项

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页</title>
</head>
<body>
<input onkeyup="showtips();if(event.keyCode==27)hideDiv();" id=txt onkeydown='enterTips()'>(如:ZhongGuo)<br/>
<select id=sel style='display:none' onclick=viewTxt() onkeydown='if(event.keyCode==13)viewTxt()'></select>
<script>
var city = new Array("zhongguo","meiguo","yilake","yilang");
var city2=new Array("中国","美国","伊拉克","伊朗");
function showtips(){
obj=event.srcElement; //获取操作对象
sel.length=0; //列表框的长度
var len=city.length; //数组的长度
var re=new RegExp("^"+obj.value,"i")//正则表达式-搜索用户输入的值
var j=0
for(i=0;i<len;i++)
if(re.test(city[i])==true){ //如果存在搜索的值
sel.style.display=''; //显示提示层
sel.add(new Option(city[i],city2[i]));j++}//提示信息
sel.size = (j>1)?j:2;
}
function enterTips(){
e=event.keyCode;
if(sel.style.display!='none'){ //如果提示层没有隐藏
if(e==13) event.srcElement.value=sel.value,sel.style.display='none';//回车
if(e==40) sel.focus(); //使用下箭头时,提示层获得焦点
}
}
function viewTxt(){
txt.value=sel.value; //显示选择的内容
hideDiv() //隐藏提示层
}
function hideDiv(){
sel.style.display='none'; //隐藏提示层的显示
txt.focus() //文本框获得焦点
}
document.onclick=function(){ //单击窗体时,隐藏提示层
hideDiv()
}
</script>
</body>
</html>
上一篇:javascript:history.go()和History.back()的区别
下一篇:JS代码实现DIV定位在文本框下面
讨论数量:1
天涯网魂 3 杠 5 星2014-09-01 13:01:30
CSS样式:
<style type="text/css">
.xlbox .xlk{ position:absolute; width:200px;}
.xlbox .xlsel{top:30px;display:none;}
</style>
HTML代码:
<span class="xlbox">
<input onclick="$('#sel').show();sel.size=10;" id="txt" class="xlk">
<select name="" id="sel" onclick="txt.value=sel.value;sel.style.display='none';" class="xlk xlsel"><option value="">数据正在加载中...</option></select>
</span>