使用 ESC 键清除 Angular / AngularUI 中的输入文本字段

2024-01-20

在我的 Angular 应用程序的几个地方,我需要使用 ESC 键清除用户的输入。问题是,我不知道如何使用文本输入字段(文本区域清除正常)。看看这个小提琴:

jsFiddle演示问题 http://jsfiddle.net/aGpNf/188/

Binding:

<input ng-model="search.query" ui-keypress="{esc: 'keyCallback($event)'}" />

我使用的回调:

$scope.keyCallback = function($event) {
  $event.preventDefault();
  $scope.search.query = '';
}

任何人都可以,请弄清楚我需要做什么才能用 ESC 键清除文本输入?

解决方案:据建议bmleite https://stackoverflow.com/users/651480/bmleite,你不应该听“按键”,而是听‘按下键’ and 'keyup'。问题是,“keydown”在 Firefox 中不起作用,因此只有“keyup”才能实现监听 ESC 的魔术。 ;)

工作小提琴:http://jsfiddle.net/aGpNf/190/ http://jsfiddle.net/aGpNf/190/

解决方案更新:最后我不得不监听“keydown”和“keyup”事件。因为在我的例子中,FF 确实将 ESC 键按下时的输入字段重置为之前的状态,所以它弄乱了我的模型。因此,“keyup”清除模型,“keydown”检查模型是否为空并执行适当的操作。我还需要手动对输入进行散焦以防止文本重新弹出。:/


接受的答案不起作用 https://github.com/angular/angular.js/issues/7297适用于 IE 10/11。这是一个解决方案基于另一个问题 https://stackoverflow.com/questions/17470790/how-to-use-a-keypress-event-in-angularjs这样做:

指示

.directive('escKey', function () {
  return function (scope, element, attrs) {
    element.bind('keydown keypress', function (event) {
      if(event.which === 27) { // 27 = esc key
        scope.$apply(function (){
          scope.$eval(attrs.escKey);
        });

        event.preventDefault();
      }
    });
    scope.$on('$destroy', function() {
        element.unbind('keydown keypress')
    })
  };
})

HTML:

<input ... ng-model="filter.abc" esc-key="resetFilter()" >

Ctrl

$scope.resetFilter = function() {
  $scope.filter.abc = null;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ESC 键清除 Angular / AngularUI 中的输入文本字段 的相关文章

随机推荐

  • 如何在JTable中添加JCheckBox?

    首先 我为我的英语疏忽表示歉意 我将解释我所有的问题 首先我想在我拥有的 JTable 中使用 JCheckBox 我正在从数据库的列索引 0 和 1 中检索学生 ID 和学生姓名 我希望第三列应该是缺席 在场 最初将通过 JCheckbo
  • TinyMCE - 附加到通过 AJAX 调用加载的 div

    我知道以前有人问过这个问题 但我正在尝试通过 jQuery AJAX 加载一些附加到 tinymce 实例的 div 在AJAX加载的页面中 有几个tinymce div 它们是由PHP循环创建的 div p Some text p div
  • 无法在 C# 中使用 Sendkeys 发送下划线?

    我很无聊 所以我尝试编写一个程序 在按 ctrl shift L 时写出不赞成的笑脸 脸 现在一切正常 除了笑脸中的下划线 它根本不会被写出来 这是我首先使用的 SendKeys Send 我尝试过各种方法 比如在下划线周围添加 括号 当然
  • R/Igraph 在边列表中显示边权重?

    当将图形对象作为边列表查看时 有什么方法可以显示边权重吗 我想本着以下精神做一些事情 get edgelist graph attr weight 以便查看与节点旁边列出的权重的边缘配对 但这似乎是不允许的 我知道如何查看权重的唯一方法是将
  • iPhone:当其他视图存在ViewController时如何防止关闭键盘

    我的 iPhone 应用程序出现问题 有一个 2UIViewController First UIViewController with UITextField和键盘向上 一旦我将打开其他UIViewController有了presentV
  • 为什么我需要在 swift 中使用下划线?

    Here https www weheartswift com tuples enums 它说 注意 意思是 我不关心那个值 但是来自 JavaScript 我不明白这意味着什么 我可以打印这些函数的唯一方法是在参数之前使用下划线 func
  • Rx.Net - 处理 Observable.Create() 期间创建的资源

    我正在尝试将 Rx net 用于项目 但我遇到了如何正确处置在Observable Create 并发出OnNext 我的设置如下所示 希望仅缩短到相关位 var obs Observable Create
  • 设置gunicorn与systemd一起运行

    正在尝试设置gunicorn与一起运行systemd 控制文件是 etc systemd system gunicorn service测试的输出是 root samuel pc systemctl start gunicorn Faile
  • git Notes 是将类别样式信息添加到提交的预期方法吗?

    答案是我可以将元数据添加到 git 提交吗 或者我可以在 gitk 中隐藏一些标签吗 https stackoverflow com questions 2683248 can i add metadata to git commits o
  • 这段代码定义明确吗?

    这段代码取自正在进行的讨论here https stackoverflow com questions 4638364 undefined behavior and sequence points reloaded 4638718 4638
  • 如何每周发送 100,000 封电子邮件? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从 AJAX 请求返回值? [复制]

    这个问题在这里已经有答案了 我有一个函数声明一个变量var关键词 然后 它启动 AJAX 请求来设置变量的值 然后从函数返回该变量 然而 我的实施失败了 我不知道为什么 这是代码的简化版本 function sendRequest some
  • Swift:转换到新场景后取消分配 GameScene?

    所以我读过几个关于这个问题的问题 但大多数都是 Objective C 的 我还没有找到任何直接解决 回答这个问题的问题 我是这里编程的新手 所以请彻底解释任何建议 我需要了解如何解除分配游戏结束后我的游戏场景到达 我需要这样做的原因是因为
  • GridBagLayout 网格化不起作用

    我正在尝试创建以下 GUI 但我制作的 GUI 是 我的网格是什么样的 image 网格布局 https i stack imgur com Wpzna png 我不明白为什么我会得到这个输出 因为我已经绘制了一个图表来帮助代码并且它似乎可
  • Java 使用带有域和安全的 RestTemplate 设置安全 cookie

    除了下面的问题之外 我如何设置 Cookie 域并标记为 安全 尝试在 Cookie 上设置其他属性 使用 RestTemplate 设置安全 cookie https stackoverflow com questions 5796078
  • 从 git 存储库进行 pip 安装,由于引用错误而出现错误

    问题描述 在 Windows 10 上使用 Python 3 7 6 我尝试升级直接从 git 存储库安装的包 pip install upgrade git https url of my py package git 然后安装失败 er
  • 如何读取pickle文件?

    我创建了一些数据并将其存储了几次 如下所示 with open filename a as f pickle dump data f 每次文件大小增加 但是当我打开文件时 with open filename rb as f x pickl
  • Android获取颜色作为字符串值

    如果我在资源中定义了一种颜色
  • F#,主格或结构类型

    F 有主格类型系统还是结构类型系统 我知道 OCaml 是结构类型的 尽管 F 似乎并非如此 这是正确的吗 F 是主格 您可以通过一些奇异的机制执行一些结构技巧 但该语言的类型系统主要是主格的
  • 使用 ESC 键清除 Angular / AngularUI 中的输入文本字段

    在我的 Angular 应用程序的几个地方 我需要使用 ESC 键清除用户的输入 问题是 我不知道如何使用文本输入字段 文本区域清除正常 看看这个小提琴 jsFiddle演示问题 http jsfiddle net aGpNf 188 Bi