我尝试将文本添加到输入类型电子邮件中,但没有成功 这就是我正在尝试的方法
$scope.lastFocused;
angular.element("input[type='text'], input[type='url'], input[type='email'], input[type='password'], input[type='search'], input[type='tel'], textarea").focus(function() {
$scope.lastFocused = document.activeElement;
});
$scope.insertText = function(text) {
var input = $scope.lastFocused;
console.log(input);
if (input == undefined) { return; }
var scrollPos = input.scrollTop;
var pos = input.selectionStart;
var front = (input.value).substring(0, pos);
var back = (input.value).substring(pos, input.value.length);
input.value = front+text+back;
pos = pos + text.length;
input.scrollTop = scrollPos;
console.log(angular.element(input).val());
angular.element(input).trigger('input');
};
我认为问题与以下事实有关:我试图触发文本类型的输入,而电子邮件不支持 input.selectionStart;
。我收到错误
Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('email') does not support selection.
由于某种原因,电子邮件将不接受值。
我只使用 Chrome。 任何解决方法将不胜感激
最佳答案
以下是另一篇与您问题类型完全相同的帖子的答案的链接:
https://stackoverflow.com/a/21959157/6032583
看来您需要找到另一种方法,因为电子邮件类型的输入不支持“selectionStart”。
关于javascript - 将文本添加到输入类型电子邮件 Angular jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152788/