angularjs - 禁用 Twitter Typeahead 上的 Enter 键?

标签 angularjs angular typescript angularjs-directive twitter-typeahead

是否可以在 Twitter Typeahead 的下拉列表中禁用某个元素上的 Enter 按键?我正在使用 Angular 和 Typescript。

当预输入输入中的 ng-keydown 上的 event.keycode === 13 时,我尝试使用 preventDefault()ng-keydown 将检测已按下 Enter 键,但无法阻止 typeahead 选择元素。

我是否需要在输入或其他内容时禁用预输入监听器?

最佳答案

您是否在 input 元素或 form 元素上尝试过?

对我来说,当我执行时它会起作用:

$('form').on('提交', function(e) {event.preventDefault();}); 不过我建议使用更具体的选择器;)

或者您可以在输入字段上执行此操作,但您需要防止事件传播。 preventDefault 仅阻止事件的默认行为 - 在输入的情况下它会更新其值。您想要做的是停止提交表单,因此您需要停止事件传播。

这是应该适用于输入的代码片段:

$('#demo-input').on('keydown', function(e) {
    if (e.keyCode === 13) {
        return false
    }
});

使用 jQuery 时,事件处理程序中的return false 与调用 e.preventDefault() 和 e.stopPropagation() 的作用相同。

关于angularjs - 禁用 Twitter Typeahead 上的 Enter 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354706/

相关文章:

javascript - AngularJS中带有ngRoute的进度条

javascript - ng-repeat 中的条件格式/样式

javascript - 提交时的搜索栏

typescript 错误 TS2304 : Cannot find name AsyncIterator even with esnext

javascript - 如何访问[object object] AngularJS的数据

javascript - Adobe DTM 无法将 Angular 变量识别为数据元素

angular - 为什么更改路线时不保存服务数据?

css - Angular Material 中的响应式排版

javascript - 如何避免 Angular 中的元素重叠

typescript - 仅针对特定属性类型的属性装饰器