layerdate 改变输入框值的时候能抛一个事件吗

layerdate 改变输入框值的时候能抛一个事件吗,第1张

引入layer-date的js,简早然后就按照下边的注释来配置样式

<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()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11967590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存