js下拉列表汉字定位

来源:互联网 发布:不需要实名认证的域名 编辑:程序博客网 时间:2024/04/27 17:37
 

<html>
<head>
</head>

<SCRIPT LANGUAGE="JavaScript">
<!--
//定义 select 原值
var oldValue=""
var oldText="";
var searchtype="0";

//select下拉框的onkeypress事件,定位下拉框的值
function catch_press(sel){

 if(sel.selectedIndex>=0){
  var s=String.fromCharCode(event.keyCode);
  oldValue=oldValue+s;
  oldText=oldText+s;
 
  event.returnValue = false;
  if (!event.returnValue && sel.onchange)
  sel.onchange(sel)
 }
 if(searchtype=="0")
  searchoptiontext(sel);
 else
  searchoptionvalue(sel);
 selMouseOver();
}

//通过text描述定位
function searchoptionvalue(obj){
  if(obj){
   var invalue=oldValue;
   var selectlength=obj.options.length
   for(var i=0;i<selectlength;i++){
    var temp=obj.options[i].value
     if(temp==invalue){
     obj.selectedIndex=i
     obj.focus()
     break;
    }  
   }
  }
 }
 //通过值value定位
function searchoptiontext(obj){
  if(obj){
   var invalue=oldText;
   var selectlength=obj.options.length
   for(var i=0;i<selectlength;i++){
    var temp=obj.options[i].text
    //alert(temp.indexOf(invalue))
     if(temp.indexOf(invalue)!=-1){
     obj.selectedIndex=i
     obj.focus()
     break;
    }  
   }
  }
 }


//select下拉框的onfocus事件,清空保存的值
function catch_focus(sel) {
 oldText ="";
 oldValue ="";
}

//select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel)
{
 switch(event.keyCode)
 {
  case 13: //回车键
   catch_focus(sel)
   event.returnValue = false;
   break;
  case 27: //Esc键
   catch_focus(sel)
   event.returnValue = false;
   break;
  case 8:  //空格健
   var s = "";
   if(searchtype=="0"){
     s=oldText;
     s = s.substr(0,s.length-1);
     oldText=s;
   }else{
     s=oldValue;
     s = s.substr(0,s.length-1);
     oldValue=s;
   } 
   selMouseOver(sel);
   event.returnValue = false;
   break;
 }
 if (!event.returnValue && sel.onchange)
  sel.onchange(sel)
}

function selMouseOver(obj)
{
 with (document.all.div_hint)
 {
  innerText ="提示信息:/r/n 你输入了:"+ oldText+"/r/n <重新选择该列表将清空该值!>";
  //obj.options[obj.selectedIndex].text;
  if (innerText.length > 0)
  {
   innerText = " " + innerText + "  ";
   style.display = "block";
   style.left = event.clientX + 20;
   style.top = event.clientY+20;
  }
 }
}

//select 选择框鼠标移开时消失   
function selMouseOut(obj)
{
 with (document.all.div_hint)
 {
  style.display = "none"
 }
}
-->
</SCRIPT>
<body>
<select style='width:130px;z-index:-1' name='tmpSel' onmouseover=selMouseOver(this) onmouseout=selMouseOut(this) onfocus=catch_focus(this) onkeypress=catch_press(this) onkeydown=catch_keydown(this)>
 <option value="AD">安道尔<option value="AE">阿联酋<option value="AF">阿富汗<option value="AL">阿尔巴尼亚
 <option value="AO">安哥拉<option value="AR">阿根廷<option value="AT">奥地利<option value="AU">澳大利亚
 <option value="BA">波斯尼亚<option value="BD">孟加拉<option value="BE">比利时<option value="BG">保加利亚
 <option value="BH">巴林<option value="BN">文莱<option value="BO">玻利维亚<option value="BR">巴西
 <option value="BT">不丹<option value="BU">缅甸<option value="BY">白俄罗斯<option value="CA">加拿大
 <option value="CF">中非<option value="CG">刚果<option value="CH">瑞士<option value="CL">智利
 <option value="CM">喀麦隆<option value="CN" selected>中国<option value="CO">哥伦比亚<option value="CR">哥斯达黎加
 <option value="CU">古巴<option value="CZ">捷克<option value="DE">德国<option value="DK">丹麦
 <option value="DZ">阿尔及利亚<option value="EG">埃及<option value="ES">西班牙<option value="FI">芬兰
 <option value="FR">法国<option value="GB">英国<option value="GR">希腊<option value="HK">香港<option value="HR">克罗地亚
 <option value="HU">匈牙利<option value="ID">印度尼西亚<option value="IE">爱尔兰<option value="IL">以色列
 <option value="IN">印度<option value="IQ">伊拉克<option value="IR">伊朗<option value="IS">冰岛<option value="IT">意大利
 <option value="JO">约旦<option value="JP">日本<option value="KE">肯尼亚<option value="KH">柬埔寨<option value="KM">科摩罗
 <option value="KP">朝鲜<option value="KR">韩国<option value="KW">科威特<option value="KY">开曼群岛<option value="KZ">哈萨克斯坦
 <option value="LA">老挝<option value="LB">黎巴嫩<option value="LK">斯里兰卡<option value="LT">立陶宛
 <option value="LU">卢森堡<option value="LV">拉脱维亚<option value="MA">摩洛哥<option value="MC">摩纳哥
 <option value="MG">马达加斯加<option value="MH">马绍尔<option value="MN">蒙古<option value="MO">澳门
 <option value="MX">墨西哥<option value="MY">马来西亚<option value="NA">纳米比亚<option value="NE">尼日尔
 <option value="NG">尼日利亚<option value="NL">荷兰<option value="NO">挪威<option value="NP">尼泊尔
 <option value="NZ">新西兰<option value="OM">阿曼<option value="PA">巴拿马<option value="PE">秘鲁
 <option value="PH">菲律宾<option value="PK">巴基斯坦<option value="PL">波兰<option value="PS">巴勒斯坦
 <option value="PT">葡萄牙<option value="PY">巴拉圭<option value="QA">卡塔尔<option value="RO">罗马尼亚
 <option value="RU">俄罗斯<option value="SA">沙特阿拉伯<option value="SC">塞舌尔<option value="SD">苏丹
 <option value="SE">瑞典<option value="SG">新加坡<option value="SK">斯洛伐克<option value="SY">叙利亚
 <option value="TH">泰国<option value="TR">土耳其<option value="TW">台湾<option value="TZ">坦桑尼亚
 <option value="UA">乌克兰<option value="US">美国<option value="VN">越南<option value="YE">也门
 <option value="YU">南斯拉夫<option value="ZA">南非<option value="ZM">赞比亚<option value="ZR">扎伊尔</select>


<div id=div_hint style="font-size:12px;color:red;display:none;position:absolute; z-index:2; top:200;background-color: #F7F7F7; layer-background-color: #0099FF; border: 1px #9c9c9c solid;filter:Alpha(style=0,opacity=80,finishOpacity=100);"></div>
<input name="c1" type="checkbox" value="svalue" onclick="c2.checked=false;searchtype='1'">按编码定位
<input name="c2" type="checkbox" value="stext" onclick="c1.checked=false;searchtype='0'" checked>按值定位

</body>
</html>

原创粉丝点击