Javascript <;输入类型=";日期“>;-jQuery捕获事件清除日期

Javascript <;输入类型=";日期“>;-jQuery捕获事件清除日期,javascript,jquery,html,date,events,Javascript,Jquery,Html,Date,Events,我不知道如何捕捉清除日期的事件,当通过单击x删除日期时。click事件没有用处,因为我得到了change事件 HTML: 我想在点击x时捕捉事件(见图)。 有什么提示吗 使用jQuery v3.2.1和Bootstrap v3,您只需侦听更改事件。该脚本应在使用或不使用jQuery的情况下工作,并在设置值和单击“清除”按钮时写入控制台: var input=document.getElementsByTagName('input')[0]; input.addEventListener('

我不知道如何捕捉清除日期的事件,当通过单击x删除日期时。click事件没有用处,因为我得到了change事件

HTML:

我想在点击x时捕捉事件(见图)。 有什么提示吗


使用jQuery v3.2.1和Bootstrap v3,您只需侦听更改事件。该脚本应在使用或不使用jQuery的情况下工作,并在设置值和单击“清除”按钮时写入控制台:

var input=document.getElementsByTagName('input')[0];
input.addEventListener('change',函数(e){
如果(!input.value)
console.log('clear!');
其他的
console.log('value',input.value);
});

谢谢Keith,这对我的解决方案是一个很好的启示

我在项目中使用jquery,所以我需要jquery中的解决方案

这个js解决方案解决了一个问题,但另一个问题是:如果通过单击清除按钮(“x”)加载页面并删除日期值,则更改事件无法识别它。解决方案:

$('.date-input')
    .click(function(e) {
         $(this).focus();
    }
    .change(function(e) {
         var myValue = $(this);
         if (!myValue.val()) {
            // do something when cleared
         } else {
            // do something on changed date
         }
    });
HTML:



好吧,您可以在此处实施
on change
事件,以使其正常工作,但我不认为您可以在单击X时捕获事件。您可以为相同的事件创建小提琴吗?快拉小提琴。只需使用jquery中的
on change
。使用
onchange
事件,然后检查
$(this).val()
是否为空“我使用jquery进行项目,因此我需要jquery中的解决方案。”您不需要。jQuery只是JS上的一堆助手,您不需要一直使用它。如果您有不使用jQuery的代码,它仍然可以很好地处理您需要它的代码。然而,是的——如果您想将我的答案翻译成jQuery,它看起来就像下面的代码。您可能不需要单击
,因为它无论如何都应该设置焦点(键盘事件也是如此)。
<input type="date" class="date-input" />