2013-04-18 13 views
6

Ich möchte ein Klick-Ereignis auslösen, wenn Sie ENTER in einem Eingang drücken und ich finde es ziemlich schwierig mit AngularJS.Fire-Taste klicken in AngularJS

Meine Ansicht (vereinfacht, aktualisiert):

<!doctype html> 
<html lang="en" ng:app="test"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Test</title> 
     <link rel="stylesheet" href="css/app.css" /> 
    </head> 
    <body ng-controller="TestController"> 
     <button ng-click="onButton1Click()" class="btn1">Click Me</button> 
     <button ng-click="onButton2Click()" class="btn2">Don't click me</button> 
     <script src="lib/jquery/jquery.js"></script> 
     <script src="lib/angular/angular.js"></script> 
     <script src="js/testcontroller.js"></script> 
    </body> 
</html> 

Mein Controller für diese Ansicht:

'use strict'; 

angular.module('test', []) 
.controller('TestController', ['$scope', 
    function($scope) { 

     $scope.onButton1Click = function() { 
      alert("Hello"); 
     } 

     $scope.onButton2Click = function() { 
      $('.btn2').click(); 
     } 
}]) 

ich vereinfacht den gesamten Code zu diesem. Wenn ich auf btn2 ich diesen Fehler

$ in bereits erzielten Fortschritte gelten

Nein, kann ich $scope.onButton1Click() nicht direkt anrufen, ich das Click btn1 simulieren müssen.

+0

ist App: Klick beobachtete = "OnButtonClick()" eine benutzerdefinierte Richtlinie Sie geschrieben haben? – ganaraj

+0

Ja, es ist eine benutzerdefinierte Richtlinie – ali

+0

können Sie Ihren Code in einen Plunker setzen? – ganaraj

Antwort

3

Das brauchte eine Weile um herauszufinden (viele Geigen).

<form id="nowsorting" ng-submit="getData(sc_user)">Now sorting the Soundcloud likes of <input type="text" ng-model="sc_user"><input type="submit" value="Sort"></form>

Machen Sie eine Form und Verwendung ng einreichen das Ereignis ausgelöst (wahrscheinlich eine Funktion).

Dann erstellen Sie zwei Eingaben (einer ist "Text" und der andere "Senden").

Wenn Sie dann die Eingabetaste drücken, sollte das ng-submit-Ereignis/die -Funktion ausgelöst werden.

1

Ich glaube, Sie müssen nur Ihre $ scope.onButtonClick() aufrufen

Bitte überprüfen this Plunker

$scope.onKeyPress = function($event) { 
    if ($event.keyCode == 13) { 
     $scope.onButtonClick(); 
    } 
}; 
+1

Dies gilt nicht wirklich ‚Klick‘ auf die Schaltfläche führt sie gerade die gleiche JavaScript-Code, mit dem Klick auf den Button verdrahtet ist.Es ist etwas anders, da zusätzliche Listener, die Sie beim Klicken auf diese Schaltfläche haben, nicht ausgelöst werden. – Randyaa

13

Sie

erwähnt

Feuer ein Klick-Ereignis der Schaltfläche, wenn innerhalb ENTER ein Eingang

Also wenn es sa ist ZB um anzunehmen, dass Sie ein Formular haben können, würde ich bevorzugen, zu verwenden, wie unten gezeigt.

<form ng-submit="clickEventFunction()"> 
    <input type="text"/> 
    <button type="submit">Click</button> 
</form> 

Hinweis Knopf sollte einreichen sein.

+0

das ist die richtige Antwort – JT703

Verwandte Themen