启用粘贴到输入[type='date']吗?

Cor*_*urn 6 javascript date paste angularjs

Chrome 中似乎<input type='date' />无法粘贴 a 。我尝试过各种格式,包括 yyyy-MM-dd MM/dd/yyyy,甚至一次只粘贴一个组件(仅粘贴月份或仅粘贴年份),但没有任何反应。我正在一个有角度的应用程序中工作,我什至尝试设置一个onpaste事件以将粘贴的内容推送到有角度的模型中,但它从未触发。

这是我所拥有的:

超文本标记语言

<input date-field type='date' ng-model='dateOfBirth'/>
Run Code Online (Sandbox Code Playgroud)

角度指令:

'use strict';

angular.module('angularcoreApp').directive('dateField', function($filter) {
  return {
      require: 'ngModel',
      link: function(scope, element, attrs, ngModelController) {
        element[0].addEventListener('paste', function () {
          debugger;
          alert(arguments);
        }, false);
        ngModelController.$parsers = [];
        ngModelController.$parsers.push(function(data) {
          //View -> Model
          var date = Date.parseExact(data, "yyyy-MM-dd");
          ngModelController.$setValidity('date', date!=null);
          return date;
        });
        ngModelController.$formatters = [];
        ngModelController.$formatters.push(function(data) {
          //Model -> View
          return $filter('date')(data, "yyyy-MM-dd");
        });
       }
    }
});
Run Code Online (Sandbox Code Playgroud)

我也导入 datejs 。

debugger目前我从未在粘贴事件侦听器中点击该语句。没有抛出错误,并且似乎没有将任何值输入到视图或模型中。

如何允许将日期粘贴到此输入中?

Mik*_*sky 0

我在 2016 年遇到了同样的问题,并发现可以通过将输入包装在其他元素中来解决此问题。

<div id="wrapped" onpaste="alert(11)">
    <input type="date" id="input1">
</div>
Run Code Online (Sandbox Code Playgroud)

知道 div 可以用于“粘贴”事件,就可以修改输入数据。