<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' οnmοuseοver=selMouseOver(this) οnmοuseοut=selMouseOut(this) οnfοcus=catch_focus(this) οnkeypress=catch_press(this) οnkeydοwn=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" οnclick="c2.checked=false;searchtype='1'">按编码定位
<input name="c2" type="checkbox" value="stext" οnclick="c1.checked=false;searchtype='0'" checked>按值定位
</body>
</html>