Как вызвать клавишу ввода при нажатии на кнопку после написания текста в текстовом поле в angularjs - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть текстовое поле и кнопка, щелчок по кнопке. Я вызываю функцию после написания некоторого текста в текстовом поле. Мне также нужно вызывать ту же функцию при нажатии клавиши ввода. Вот код ниже.

html

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="text">
<button ng-click="myFunct()" type="button">click</button> 
</div>

script

var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope,$http) {   
$scope.myFunct = function() {
  alert('I am an alert');
    }
    });

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Вам необходимо добавить директиву, например:

var app = angular.module("myApp", []);

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

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

app.controller("myCtrl", function($scope) {   
  $scope.doSomething = function() {
    alert('I am an alert');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
    <input type="text" my-enter="doSomething()">  
    <button ng-click="myFunct()" type="button">click</button> 
</div>
0 голосов
/ 29 декабря 2018

Добавить ng-keyup к входу:

<input type="text" ng-keyup="$event.keyCode == 13 ? myFunct() : null">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...