<input type="text" id="slsj" class="laydate-icon" />
<script>
laydate.skin('danlan')
laydate({
elem: '#slsj',
//对应id
format: 'YYYY-MM-DD hh:mm:ss', //日期格式 // 分隔符可以任意定义,该例子表示只显示年月
min: laydate.now(), //设定最小日期为当前日期
max: '2099-06-16 23:59:59', //最大日期
festival: true, //显示节日
istime: true, //是否显示时分秒
istoday: true,
//是否是今天
choose: function(datas){ //选择日期完毕的回调
end.min = datas//开始日选好后,重置结束日销岩的最小亏咐御日期
end.start = datas //将结束日的初始值设定为开始日
}
})
</script>
遇到一个需求,要给一个差禅 div 添加 blur 事件,具体情况是: el-seclect 不满足项目下拉列表的需求,找了一些插件,也没发现比较好用的,所以就决定自己用 div 实现效果,也就遇到了当鼠标点击其他空白处时, div 要隐藏起来的问题
刚开始毫无思路,查了查资料,发现还真的可以
1. 直接给 div 加 blur 事件
不生效,然后发虚坦尘现是 div 不能直接加 blur 事件
2.用 tabindex
差不多就是这种: https://blog.csdn.net/u013112461/article/details/90747257 ,效果很奇怪,不符合需求
最后想到了,用 vue 去监听所有的点击事件,从里面筛选出来这个 div ,除了点击这信纳个 div ,其他地方全部隐藏
错误写法:
这个想法没问题,但是运行之后,控制台报错
Uncaught TypeError: this.$refs.boxRef.contains is not a function at HTMLDocument.eval ,就很烦,然后查了好久,终于找到一篇相关博客,原因就是 用js原生获取dom的方法代替ref方式
修改之后:
到这里就成功的实现了 div 的 blur 效果,学废了学废了!
贴上大佬博客: https://www.freesion.com/article/33241074504/
候自动让焦点回到该文本框,所以当你1输入错误的时候,这个时候焦点去了2,1里又手伏键让焦点回来,焦点回到1的时候又触发了2里的onBlur事件,正好2里毕巧又判断到不能为空,然后要求焦点回到2里面,如此反复,一直这么下去。。。。。。要想实现这样的功能我们不是放到onBlur下去做,这样很容易出现死循环的情况,如果你非要这样做就不要再把焦点设回来.一般都是在提交的时候一个个去验证比如有name,pwd,phone,那么就是
if(name == ""){
alert("姓名不能为空")
name.focus()
}
else if(pwd == ""){
alert("....")
pwd.focus()
}
else if(phone == ""){
alert("...")
phone.focus()
}
else{
if(confim("您确定提交厅耐吗?")){
document.forms[0].submit()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)