我使用rome.js作为日期选择器。当用户完成输入日期时,我需要日期选择器离开并在页面上被显示日期的文本替换。问题是,我不知道如何判断用户何时完成了日期的选择。我真的不想为他们添加另一个控件来删除日期选择器,但是我想从用户的操作中推断出这一点。
其中一个想法是寻找hide事件--与autoHideOnClick和autoHideOnBlur一起使用时,我认为我可以判断用户已经进入了一个新的日期,并且已经完成了。但是,我发现,一旦创建了选择器,我就会立即得到这个事件--即使在创建选择器时输入元素有焦点,选择器也不会立即弹出。此外,隐藏事件有时甚至在用户仍然输入日期时也会发生,例如,如果用户输入日期,然后仍然希望手动输入时间。
我所创建的输入元素上的blur事件也有类似的问题--例如,它在打开选择器时触发。
如何知道用户何时完成输入日期/时间?
发布于 2019-07-17 03:36:43
我认为您可以在日期输入和每次按下笔画上添加一个按键事件处理程序,验证日期,如果它是有效的,则将日期选择器(类名称为rd-容器)的显示属性更改为"none“。
这是伪码。我在https://www.cssscript.com/demo/highly-customizable-date-and-time-picker-with-rome-js/上
dateInput.onkeydown = function () {
if(dateInput.text is valid) { //validate the date here.
$(".rd-container").css("display","none");
}
}您可以使用相同的函数来检测用户“粘贴”日期文本是否进入您的输入元素,方法是侦听"onpaste“事件。
dateInput.onpaste = function () {
if(dateInput.text is valid) { //validate the date here.
$(".rd-container").css("display","none");
}
}https://stackoverflow.com/questions/57067310
复制相似问题