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
目前我从未在粘贴事件侦听器中点击该语句。没有抛出错误,并且似乎没有将任何值输入到视图或模型中。
如何允许将日期粘贴到此输入中?
我在 2016 年遇到了同样的问题,并发现可以通过将输入包装在其他元素中来解决此问题。
<div id="wrapped" onpaste="alert(11)">
<input type="date" id="input1">
</div>
Run Code Online (Sandbox Code Playgroud)
知道 div 可以用于“粘贴”事件,就可以修改输入数据。
归档时间: |
|
查看次数: |
1559 次 |
最近记录: |