亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用AngularJS按Enter提交表單

使用AngularJS按Enter提交表單

qq_遁去的一_1 2019-10-14 10:51:34
在這種情況下,按Enter鍵時必須使這些輸入調用函數的選項是什么?// HTML view //<form>    <input type="text" ng-model="name" <!-- Press ENTER and call myFunc --> />    <br />    <input type="text" ng-model="email" <!-- Press ENTER and call myFunc --> /></form>// Controller //.controller('mycontroller', ['$scope',function($scope) {    $scope.name = '';    $scope.email = '';    // Function to be called when pressing ENTER    $scope.myFunc = function() {       alert('Submitted');    };}])
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

如果要調用不帶格式的函數,可以使用我的ngEnter指令:


Javascript:


angular.module('yourModuleName').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': event});

                    });


                    event.preventDefault();

                }

            });

        };

    });

HTML:


<div ng-app="" ng-controller="MainCtrl">

    <input type="text" ng-enter="doSomething()">    

</div>

我在自己的Twitter和Gist帳戶上提交了其他很棒的指令。


查看完整回答
反對 回復 2019-10-14
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

我想要的東西多一點擴展/大于給定答案的語義,所以我寫了一個指令,需要一個JavaScript對象以類似的方式內置ngClass:


的HTML

<input key-bind="{ enter: 'go()', esc: 'clear()' }" type="text"></input>

在指令范圍內評估對象的值-確保將其用單引號引起來,否則在加載指令時將執行所有功能(?。?/p>


因此,例如:  esc : 'clear()'代替esc : clear()


Java腳本

myModule

    .constant('keyCodes', {

        esc: 27,

        space: 32,

        enter: 13,

        tab: 9,

        backspace: 8,

        shift: 16,

        ctrl: 17,

        alt: 18,

        capslock: 20,

        numlock: 144

    })

    .directive('keyBind', ['keyCodes', function (keyCodes) {

        function map(obj) {

            var mapped = {};

            for (var key in obj) {

                var action = obj[key];

                if (keyCodes.hasOwnProperty(key)) {

                    mapped[keyCodes[key]] = action;

                }

            }

            return mapped;

        }


        return function (scope, element, attrs) {

            var bindings = map(scope.$eval(attrs.keyBind));

            element.bind("keydown keypress", function (event) {

                if (bindings.hasOwnProperty(event.which)) {

                    scope.$apply(function() {

                         scope.$eval(bindings[event.which]);

                    });

                }

            });

        };

    }]);



查看完整回答
反對 回復 2019-10-14
  • 3 回答
  • 0 關注
  • 796 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號