2016-04-26 2 views
1

Ich habe ein Suchmodal, das zwei Schaltflächen hat, die ich beim Drücken von Enter auslösen möchte. Es gibt die erste Schaltfläche "Suchen" und dann eine abschließende Schaltfläche "Senden".Angular modal mit zwei Sendeschaltflächen zum Auslösen bei "Enter"

Der Benutzer befindet sich in einem Angular Modal, fügt einen Namen in ein Suchfeld ein (während dieser Zeit ist die Submit-Schaltfläche deaktiviert) und drückt dann die Eingabetaste, um die Suche zu starten. Die Suche füllt eine Tabelle auf, nach der der Benutzer auf einen Namen klickt, um ihn auszuwählen, und dann die Schaltfläche Senden aktiviert ist, und jetzt möchte ich einen Tastendruck von "Enter", um die Auswahl zu übermitteln.

Ich kann das erste "Enter" erhalten, um die Suchfunktionalität zu starten, aber ich kann nicht den zweiten Druck von "Enter" erhalten, um das Übermitteln der Auswahl einzuleiten.

Hier ist mein Code:

<button type="submit" class="btn btn-default" ng-click="getNames(params)" value="Search">Search</button> 
<button class="btn btn-default" type="button" ng-click="Clear(params)">Clear</button> 

Und dann, sobald die Liste der Namen auffüllt, wählt der Benutzer ein und sollte dann in der Lage sein, wieder zu „Enter“ drücken Sie die Schaltfläche Senden auszulösen.

<div class="modal-footer"> 
    <input class="btn btn-default" type="submit" ng-click="OK()" ng-disabled="disableOK()"/> 
    <button class="btn btn-default" type="button" ng-click="Cancel()">Cancel</button> 
</div> 

Verwendung <button type="submit" class="btn btn-default "ng-click="OK()" g-disabled="disableOK()"></button> Funktioniert hier auch nicht.

Ich habe überall gesucht, da es scheint, als wäre es ein häufiges Problem, aber ich habe keine Lösung dafür gesehen, meistens sind es Leute mit mehreren Tasten, die verschiedene Dinge tun wollen, nicht mit dem " Enter-Taste.

Kann ich es als Standard zuweisen, wenn es aktiviert wird?

+0

Stellen Sie sicher, dass der Button Teil des Formulars ist. Verwenden Sie dann das onsubmit-Ereignis. Die Eingabe funktioniert in diesem Fall. – dfsq

Antwort

0

Ich habe eine harte Zeit nach, was Sie versuchen .. aber zu tun, wenn ich ein Formular verschiedene Dinge tut auf einem Tastendruck zu erreichen versuchen, würde ich folgend in meinem Controller tun:

var keypressed = false; 

$scope.keyPressedFunction = function() {  
    if (keypressed) { 
     // do second thing 
    } else { 
     // do first thing 
     keypressed = true 
    } 
} 

Beantwortet das Ihre Frage überhaupt?

Verwandte Themen