在使用LayUI表单验证时,发现select下拉框未通过验证时,不能定位到当前屏幕内显示。
经排查发现LayUI表单验证是通过focus()方法来定位HTML标签的,但是select的focus()无效,因为被重新封装组件了。
本想覆盖或继承LayUI相关的方法,但是发现,LayUI没有将相关的方法暴露出来。
只有最后一个办法,改源码,走起。。。
下载LayUI源码https://gitee.com/sentsin/layui
改善位置:src\lay\modules\form.js 672行
//非移动设备自动定位焦点
if(!device.android && !device.ios){
setTimeout(function(){
// item.focus(); // 672行
if($(item).hasClass("layui-select")){
$(item).next().find("input[type='text']").focus();
}else{
item.focus();
}
}, 7);
}