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

 更新时间:2023年05月16日 00:32:10   作者:小鱼娟娟  
这篇文章主要介绍了js select支持手动输入实现代码,需要的朋友可以参考下

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[0].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 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 手动输入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 地址栏传递中文参数乱码在js里用escape转码

    地址栏传递中文参数乱码在js里用escape转码

    乱码,头大的一件事可以考虑转码方式不直接传中文,在js里用escape转码,具体实现如下,有类似情况的朋友可以参考下
    2013-08-08
  • JavaScript之Canvas_动力节点Java学院整理

    JavaScript之Canvas_动力节点Java学院整理

    这篇文章主要介绍了JavaScript之Canvas,Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表、动画等
    2017-07-07
  • 如何写好你的JavaScript【推荐】

    如何写好你的JavaScript【推荐】

    在实际工作中,我们应该经常会看到一些功能上没有问题,但编码风格和规范却十分糟糕的代码,这往往会让人不敢再往下阅读,甚至会影响阅读者一天的心情。本文的目的在于帮助那些没有养成良好的编码风格,缺乏相应编码规范意识的JavaScript学习者们改善他们的编码形象。
    2017-03-03
  • Object.keys方法实例详解

    Object.keys方法实例详解

    这篇文章主要介绍了Object.keys方法实例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 固定背景实现的背景滚动特效示例分享

    固定背景实现的背景滚动特效示例分享

    固定背景滚动特效,使用background-attachment: fixed和导航菜单,页面会非常平滑的滚动,感兴趣的朋友可以参考下哈希望对你有所帮助
    2013-05-05
  • JavaScript匿名函数之模仿块级作用域

    JavaScript匿名函数之模仿块级作用域

    这篇文章主要介绍了JavaScript匿名函数之模仿块级作用域的相关资料,需要的朋友可以参考下
    2015-12-12
  • 小程序wx.getUserProfile接口的具体使用

    小程序wx.getUserProfile接口的具体使用

    最近微信小程序对于审核小程序提出了带有wx.login、wx.getUserInfo接口的调整,并提出了一个新的接口供开发者调用,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-06-06
  • JavaScript实现简单生成随机颜色的方法

    JavaScript实现简单生成随机颜色的方法

    这篇文章主要介绍了JavaScript实现简单生成随机颜色的方法,涉及javascript随机数与字符串运算及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2017-09-09
  • JavaScript实现年历效果

    JavaScript实现年历效果

    这篇文章主要为大家详细介绍了JavaScript实现年历效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • layui(1.0.9)文件上传upload,前后端的实例代码

    layui(1.0.9)文件上传upload,前后端的实例代码

    今天小编就为大家分享一篇layui(1.0.9)文件上传upload,前后端的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论