需要在输入命中时触发功能

时间:2014-02-20 19:34:15

标签: javascript angularjs

我有一个搜索框,它是一种文本类型。它有一个单击按钮,启动Find()。

如何通过点击文本框内的输入来进行查找

4 个答案:

答案 0 :(得分:2)

如果您的文本输入位于表单元素内,则可以将onSubmit(或jQuery .submit())事件处理程序附加到表单元素。当用户在文本输入

内按Enter键时,将触发此事件

答案 1 :(得分:1)

input元素上使用ng-keypress并检查enter密钥代码:

<input type="text" ng-keypress="($event.which === 13) ? Find() : void(0)" />

这假设已加载jQuery。否则,您可能希望使用$event.keyCode,但是以浏览器兼容的方式would be tricky执行此操作。


如果您有一个包含此模板的指令,那么您应该在link函数中捕获此事件并在那里调用Find。否则,将input按钮放在form内并在on-submit元素上定义form。请检查IE兼容性,我记得IE7至少需要在输入键的表单中隐藏<input type="submit" />才能提交表单。

答案 2 :(得分:0)

    document.onkeydown = function(evt) {//when key is pressed

        evt = evt || window.event;
        if (13 == evt.keyCode) {//if key was enter
            if (document.activeElement.className== "search_input"){//if the focus is on your input (in this case search_input)
                Find() //call your function
                return false;//cancel enter
            }
        }   
    }

答案 3 :(得分:0)

我通常对Angular-UI非常好运。在这种情况下,ui-keypress指令应该很好用。 http://angular-ui.github.io/ui-utils/#/keypress。返回/回车键所需的键码是13。