文本框输入文字就能选出下拉框中含这个字的项,这是怎么实现的? 不需要都放到数组里可以使用AJAX 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20080517/16/7d0ccbe0-54d9-4613-bd20-950c45c1f557.html可以看这个我给人解决的一个问题 <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>看看是否符合你的需求 谢谢s_liangchao1s,但是我测试时输入"伊"字,没有列出中文的"伊拉克","伊朗"请问怎样实现中文的查找??能把代码改一下再发一次吗? <select name="aaa"><option>中国</option><option>美国</option></select> <input type="text" name="Upfile" id="aaa" onblur="chksize(this.value)"><script type="text/javascript">function chksize(a){ var c=document.getElementsByName("aaa")[0].options // alert(c.length) for(var i=0;i<c.length;i++){ //alert(c[i].text) //alert(c[i].text.substr(0,1)) //alert(a.substr(0,1)) if(c[i].text.substr(0,1)==a.substr(0,1)){ document.getElementsByName("aaa")[0].selectedIndex=i } }}</script>输入"美"字 发个以前写的,过滤select的<html xmlns="http://www.w3.org/1999/xhtml" ><head><title>标题页</title><style>#tempSel{display:none;position:absolute;}body{font-size:10pt;}</style></head><body>快速定位:<input type="text" id="txtKey" onkeyup="filter(this.value)"/><br /><select id="sel"></select><select id="tempSel" multiple="multiple" onchange="$('sel').selectedIndex=this.selectedIndex;this.style.display='none';"></select><script>var Arr=new Array("中国","美国","伊拉克","伊朗","美人","高丽棒子","日本","高丽菜","高丽");window.onload=function(){ List(Arr,$("sel")); var pos=GetPos($("sel")),tSel=$("tempSel"); tSel.style.left=pos.x+"px"; tSel.style.top=pos.y+"px";}function GetPos(obj){ var pos=new Object(); pos.x=obj.offsetLeft; pos.y=obj.offsetTop+obj.offsetHeight+2; while(obj=obj.offsetParent) { pos.x+=obj.offsetLeft; pos.y+=obj.offsetTop; } return pos;}Array.prototype.filter=function(v,IsContains){ var fArr=new Array(); if(v.trim()=="")return this; else{ for(var i=0;i<this.length;i++) if(!IsContains&&this[i].indexOf(v)==0)fArr.push(this[i]); else if(this[i].indexOf(v)!=-1)fArr.push(this[i]); } return fArr;}String.prototype.trim=function(reg){if(reg)return this.replace(reg,"");else return this.replace(/^\s*|\s*$/g,"");}function $(Id){if(typeof(Id)=="string")return document.getElementById(Id);else return Id;}function List(Arr,sel){ sel.options.length=0; for(var i=0;i<Arr.length;i++)sel.options.add(new Option(Arr[i],Arr[i]));}function filter(v){ v=v.trim(); if(v==""){List(Arr,$("sel"));return;} var TempArr=Arr.filter(v); List(TempArr,$("sel")); var tSel=$("tempSel"); List(TempArr,tSel); tSel.size=TempArr.length; tSel.style.display="block";}</script></body></html> .....后来才发现s_liangchao1s那个最好应该给多点分,搞错了,sorry 关于 层置顶问题。 求js模拟的滚动条 这段js代码如何才能让火狐兼容呀!急用,等!!! 关于javascript页面跳转后刷新的问题 如何上传网页呀! 在写页面时使用变量 高分求可以在框架网页下使用的Javascript 日历代码 1、怎样获取鼠标在文本框中的第几个字符处位置? 2、怎样把选中的文本框中的文字用()扩起来? 请问高手以下两种加密方式是不是一样的:JavaScript.Encode 和 JScript.Encode 求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>看看是否符合你的需求
请问怎样实现中文的查找??能把代码改一下再发一次吗?
<option>中国</option>
<option>美国</option>
</select>
<input type="text" name="Upfile" id="aaa" onblur="chksize(this.value)"><script type="text/javascript">
function chksize(a){ var c=document.getElementsByName("aaa")[0].options
// alert(c.length)
for(var i=0;i<c.length;i++){
//alert(c[i].text)
//alert(c[i].text.substr(0,1))
//alert(a.substr(0,1))
if(c[i].text.substr(0,1)==a.substr(0,1)){
document.getElementsByName("aaa")[0].selectedIndex=i
}
}
}</script>输入"美"字
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页</title>
<style>
#tempSel{display:none;position:absolute;}
body{font-size:10pt;}
</style>
</head>
<body>
快速定位:<input type="text" id="txtKey" onkeyup="filter(this.value)"/><br />
<select id="sel"></select>
<select id="tempSel" multiple="multiple" onchange="$('sel').selectedIndex=this.selectedIndex;this.style.display='none';"></select>
<script>
var Arr=new Array("中国","美国","伊拉克","伊朗","美人","高丽棒子","日本","高丽菜","高丽");
window.onload=function(){
List(Arr,$("sel"));
var pos=GetPos($("sel")),tSel=$("tempSel");
tSel.style.left=pos.x+"px";
tSel.style.top=pos.y+"px";
}
function GetPos(obj)
{
var pos=new Object();
pos.x=obj.offsetLeft;
pos.y=obj.offsetTop+obj.offsetHeight+2;
while(obj=obj.offsetParent)
{
pos.x+=obj.offsetLeft;
pos.y+=obj.offsetTop;
}
return pos;
}
Array.prototype.filter=function(v,IsContains)
{
var fArr=new Array();
if(v.trim()=="")return this;
else{
for(var i=0;i<this.length;i++)
if(!IsContains&&this[i].indexOf(v)==0)fArr.push(this[i]);
else if(this[i].indexOf(v)!=-1)fArr.push(this[i]);
}
return fArr;
}
String.prototype.trim=function(reg){if(reg)return this.replace(reg,"");else return this.replace(/^\s*|\s*$/g,"");}
function $(Id){if(typeof(Id)=="string")return document.getElementById(Id);else return Id;}
function List(Arr,sel)
{
sel.options.length=0;
for(var i=0;i<Arr.length;i++)sel.options.add(new Option(Arr[i],Arr[i]));
}
function filter(v)
{
v=v.trim();
if(v==""){List(Arr,$("sel"));return;}
var TempArr=Arr.filter(v);
List(TempArr,$("sel"));
var tSel=$("tempSel");
List(TempArr,tSel);
tSel.size=TempArr.length;
tSel.style.display="block";
}
</script>
</body>
</html>