随丰 发表于 2023-5-17 11:03:23

js select支持手动输入功能实现代码

select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel){
   switch(event.keyCode) {
    case 13: //回车键
   event.returnValue = false;
   break;
    case 27: //Esc键
   sel.options.text = oldText;
   sel.options.value = oldValue;
   event.returnValue = false;
   break;
    case 8://空格健
   var s = sel.options.text;
   s = s.substr(0,s.length-1);
   if (sel.options.value==sel.options.text){
      sel.options.value=s;
      sel.options.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.text + String.fromCharCode(event.keyCode);
    if (sel.options.value==sel.options.text){
   sel.options.value=s;
   sel.options.text=s;
    }
    event.returnValue = false;
    if (!event.returnValue && sel.onchange)
   sel.onchange(sel)
   }
}select下拉框的onfocus事件,保存下拉框原来的值
function catch_focus(sel) {
   oldText = sel.options.value;
   oldValue = sel.options.value;
}   使用方法
<!--调用-->
<select style='width:130px;z-index:-1' name='tmpSel'    onkeydown=catch_keydown(this) onkeypress=catch_press(this) onfocus=catch_focus(this)>
<option value=''></option>
<option value=''>A</option>
<option value=''>B</option>
<option value=''>C</option>
</select>到此这篇关于js select支持手动输入功能实现代码的文章就介绍到这了,更多相关js select 手动输入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/javascript/284424srg.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: js select支持手动输入功能实现代码