<input type =“ date” />-jQuery捕获事件清除日期

时间:2018-10-30 12:57:52

标签: javascript jquery html date events

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

HTML:

Date Field with clear x

我想在单击x时捕获事件(请参见图片)。 有提示吗?

使用jQuery v3.2.1和Bootstrap v3

2 个答案:

答案 0 :(得分:2)

您可以只听更改事件。此脚本可以在有或没有jQuery的情况下使用,并且在设置值和单击清除按钮时将写入控制台:

var input = document.getElementsByTagName('input')[0];

input.addEventListener('change', function(e) {
  if (!input.value)
    console.log('clear!');

  else
    console.log('value', input.value);
});
<input type="date" />

答案 1 :(得分:2)

谢谢基思,这对我的解决方案是一个很好的体现。

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

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

$('.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:

<input type="date" class="date-input" />