为 Html 的 Select 加一个提示语和输入方法

本文介绍了一个使用JavaScript实现的自定义Select控件,该控件允许用户通过键盘输入直接修改选项值,并提供了鼠标悬停显示提示信息的功能。此外,还实现了ESC键取消编辑和回车键确认编辑等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<Html> 
<Head> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
//定义 select 原值 
var oldValue,oldText; 
//select下拉框的onkeydown事件,修改下拉框的值 
function catch_keydown(sel) 

switch(event.keyCode) 

case 13: //回车键 
event.returnValue = false; 
break; 
case 27: //Esc键 
sel.options[sel.selectedIndex].text = oldText; 
sel.options[sel.selectedIndex].value = oldValue; 
event.returnValue = false; 
break; 
case 8: //空格健 
var s = sel.options[sel.selectedIndex].text; 
s = s.substr(0,s.length-1); 
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text) 

sel.options[sel.selectedIndex].value=s; 
sel.options[sel.selectedIndex].text=s; 

event.returnValue = false; 
break; 

if (!event.returnValue && sel.onchange) 
sel.onchange(sel) 
}

//select下拉框的onkeypress事件,修改下拉框的值 
function catch_press(sel){ 
if(sel.selectedIndex>=0){ 
var s = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode); 
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text) 

sel.options[sel.selectedIndex].value=s; 
sel.options[sel.selectedIndex].text=s; 

event.returnValue = false; 
if (!event.returnValue && sel.onchange) 
sel.onchange(sel) 

}

//select下拉框的onfocus事件,保存下拉框原来的值 
function catch_focus(sel) { 
oldText = sel.options[sel.selectedIndex].value; 
oldValue = sel.options[sel.selectedIndex].value; 
}

//恢复select下拉列表当前选中的值 
function LoadSelect(obj,value) 

for (var i=0; i< obj.options.length; i++) 
if (obj.options[i].value == value) 

obj.selectedIndex = i; 
break; 

}

//select 选择框鼠标上移时提示选择的内容 
function selMouseOver(obj) 

with (document.all.div_hint) 

innerText = obj.options[obj.selectedIndex].text; 
if (innerText.length > 0) 

innerText = " " + innerText + " "; 
style.display = "block"; 
style.left = event.clientX + 16; 
style.top = event.clientY; 


}

//select 选择框鼠标移开时消失 
function selMouseOut(obj) 

with (document.all.div_hint) 

style.display = "none" 


//--> 
</SCRIPT> 
</Head> 
<Body> 
<!--调用--> 
<select style='width:130px;z-index:-1' name='tmpSel' onmouseover=selMouseOver(this) onmouseout=selMouseOut(this) onkeydown=catch_keydown(this) onkeypress=catch_press(this) onfocus=catch_focus(this)> 
<option value=''></option> 
</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> 
</Body> 
</Html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值