layui--select使用以及下拉框实现键盘选择的例子


Posted in Javascript onSeptember 24, 2019

注意几点:

1.select下拉框一定要放到layui-form类下。这个layui-form不是必须放在form上,放在一个div也是可以的

2.要注意每次form render之后呢,要重新注册事件。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <title>开始使用layui</title>
 <link rel="stylesheet" href="./layui/css/layui.css" rel="external nofollow" >
</head>
<body>
 
 
 
 
 
<form class="layui-form" action="">
 <div class="layui-form-item">
 <label class="layui-form-label">输入框</label>
 <div class="layui-input-block">
  <input type="text" name="title" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
 </div>
 </div>
 <div class="layui-form-item">
 <label class="layui-form-label">密码框</label>
 <div class="layui-input-inline">
  <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
 </div>
 <div class="layui-form-mid layui-word-aux">辅助文字</div>
 </div>
 <div class="layui-form-item">
 <label class="layui-form-label">选择框</label>
 <div class="layui-input-block">
  <select name="city" lay-verify="required" lay-search>
  <option value=""></option>
  <option value="0">北京</option>
  <option value="1">上海</option>
  <option value="2">广州</option>
  <option value="3">深圳</option>
  <option value="4">杭州</option>
  </select>
 </div>
 </div>
 <div class="layui-form-item">
 <label class="layui-form-label">复选框</label>
 <div class="layui-input-block">
  <input type="checkbox" name="like[write]" title="写作">
  <input type="checkbox" name="like[read]" title="阅读" checked>
  <input type="checkbox" name="like[dai]" title="发呆">
 </div>
 </div>
 <div class="layui-form-item">
 <label class="layui-form-label">开关</label>
 <div class="layui-input-block">
  <input type="checkbox" name="switch" lay-skin="switch">
 </div>
 </div>
 <div class="layui-form-item">
 <label class="layui-form-label">单选框</label>
 <div class="layui-input-block">
  <input type="radio" name="sex" value="男" title="男">
  <input type="radio" name="sex" value="女" title="女" checked>
 </div>
 </div>
 <div class="layui-form-item layui-form-text">
 <label class="layui-form-label">文本域</label>
 <div class="layui-input-block">
  <textarea name="desc" placeholder="请输入内容" class="layui-textarea"></textarea>
 </div>
 </div>
 <div class="layui-form-item">
 <div class="layui-input-block">
  <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
  <button type="reset" class="layui-btn layui-btn-primary">重置</button>
 </div>
 </div>
</form>
 
 
 
<script src="./layui/layui.js"></script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 
 
<script type="text/javascript">
/***********layui下拉框选择,支持键盘*************/
 
layui.use('form', function(){
 var form = layui.form;
 var $ = layui.$;
 form.render();
 //每次渲染之后手注册事件
 $("dl").prev().find("input").attr("onkeydown","listenSelect.up(event,this)");
});
 
var listenSelect = {
 style:"layui-this",
 up:function (event,thisinput) {
  var keyCode = event.keyCode;
  var dl = $(thisinput).parent().next(); //找到渲染后的dl
  var curDd =(dl).find('.layui-this');
  if(keyCode==40){ //按下下键
   $(thisinput).parents('.layui-form-select').addClass('layui-form-selected');
   curDd = $(dl).find('.layui-this').nextAll(':not(.layui-hide)');
   if(curDd.length == 0){
    // curDd = $(dl).find('dd:first');
    curDd = $(dl).find('dd').not(".layui-hide").first();
   }else{
    curDd = curDd[0];
   }
  }else if(keyCode==38){
   $(thisinput).parents('.layui-form-select').addClass('layui-form-selected');
   curDd = $(dl).find('.layui-this').prevAll(':not(.layui-hide)');
   if(curDd.length == 0){
    curDd = $(dl).find('dd').not(".layui-hide").last();
   }else{
    curDd = curDd[0];
   }
  }
 
 
  dl.find("dd").removeClass(this.style); //移除样式
  $(curDd).addClass(this.style);
 
  var dd = $(dl).find('.layui-this');
 
 
  // 计算高度--start
  try{
   dd.offset().top - dl.offset().top + dl.scrollTop();
   dl.scrollTop(
    dd.offset().top - dl.offset().top + dl.scrollTop()-100
   );
  }catch(err){
   //console.log(err.stack);
  }
  // 计算高度--end
 
  if(keyCode == 13){
   $(dd).click();
   $(thisinput).focus(); // 再次得到焦点
   $(thisinput).attr("onkeydown","listenSelect.up(event,this)")
  }
  return false;
 }
};
 
/********END*******/
 
</script>
</body>
</html>

以上这篇layui--select使用以及下拉框实现键盘选择的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE中jscript/javascript的条件编译
Sep 07 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
用Move.js配合创建CSS3动画的入门指引
Jul 22 Javascript
JS+CSS实现电子商务网站导航模板效果代码
Sep 10 Javascript
在 Node.js 中使用原生 ES 模块方法解析
Sep 19 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
BootStrap table实现表格行拖拽效果
Dec 01 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
vue实现前端分页完整代码
Jun 17 Javascript
JS防抖和节流实例解析
Sep 24 #Javascript
vue.js实现图书管理功能
Sep 24 #Javascript
layui table单元格事件修改值的方法
Sep 24 #Javascript
Javascript Dom元素获取和添加详解
Sep 24 #Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 #Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 #Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 #Javascript
You might like
php实现word转html的方法
2016/01/22 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
python的dict,set,list,tuple应用详解
2014/07/24 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python获取中文字符串长度的方法
2018/11/14 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Python 求数组局部最大值的实例
2019/11/26 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
幼儿园中秋节活动方案2013
2014/01/29 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
信息技术国培研修日志
2015/11/13 职场文书
初中化学教学反思
2016/02/22 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python