添加文本到输入类型email angular jquery

wfypjpf4  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(129)

我 试图 添加 文本 到 输入 类型 的 电子 邮件 没有 成功 这里 是 我 如何 尝试 这样 做

$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;
无法 从 " HTMLInputElement " 读取 " selectionStart " 属性 :输入 元素 的 类型 ('email ' ) 不 支持 选择 。
且 由于 某种 原因 , 电子 邮件 将 不 接受 值 。
我 只 使用 chrome 。 任何 变通 办法 都 将 是 apreciated

aor9mmx1

aor9mmx11#

这里有一个链接,指向另一个帖子的答案,该帖子的问题类型与您的完全相同:
https://stackoverflow.com/a/21959157/6032583
看起来您需要找到其他方法,因为电子邮件类型的输入不支持“selectionStart”。

afdcj2ne

afdcj2ne2#

我 不 明白 你 想 达到 什么 目的 。 不过 , 我 认为 你 想 改变 input 指令 的 type 属性 。
您 可以 仅 使用 Angular 来 实现 , 如下 所 示 :<input type={{foo.bar}}>
稍后 在 控制 器 中 相应 地 更改 $scope.foo.bar 的 值 。
此外 , {{}} 之间 的 任何 值 都 是 表达式 , 它 可以 计算 为 任何 值 。
PS : 将 Jquery 与 AngularJS 一起 使用 有点 多余 , 并 不 被 认为 是 一 个 好 的 实践 。

相关问题