下拉列表和textarea上的ng-submit

时间:2016-05-18 08:38:56

标签: javascript html angularjs forms ng-submit

您好我遵守了代码:

<form ng-submit="ctrl.commitEdit(sign)">
    <input ng-model="sign.Value">
    <input ng-model="sign.Date">
    <textarea ng-model="sign.Comment"></textarea>
    <select ng-model="sign.Property"></select>
    <button type="submit">Save</button>
</form>

在我的组件周围使用我的表单,我尝试以两种方式保存我的编辑(在我的表单中,我在控制器中调用ng-submit从我的控制器提交一个方法,这保存了我的编辑):

  • 点击我的按钮,其类型为&#34;提交&#34;,它在我的表单的ng-submit中调用该功能。这工作正常!它保存
  • 然后我也想按下&#34;输入&#34;在我的键盘上。这就是为什么我用我的按钮类型提交使用表格ng-submit。这只适用,当我改变输入中的某些内容时,焦点就在那里!当我在textarea中更改某些内容并按&#34;输入&#34;时,它会中断。当我在下拉列表中更改某些内容然后按&#34;输入&#34;时,它会再次打开下拉列表。

所以我想按下&#34;输入&#34;在各方面,在输入,选择和textarea。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:1)

您需要做的就是使用ngKeyup。

https://docs.angularjs.org/api/ng/directive/ngKeyup

只需将输入密钥代码绑定为13,然后调用您的函数

此外,这是一个可以为您的目的实施的指令。

app.directive('ngEnter', function() {
        return function(scope, element, attrs) {
            element.bind("keydown keypress", function(event) {
                if(event.which === 13) {
                        scope.$apply(function(){
                                scope.$eval(attrs.ngEnter);
                        });

                        event.preventDefault();
                }
            });
        };