Verhindern Sie die ng-Klick-Aktion beim Drücken der Eingabetaste

Lesezeit: 1 Minute

Benutzer-Avatar
tschiela

Ich habe a geschrieben timepicker Direktive, wo ich die Zeit eingeben kann und ob ich treffe Eintreten Der Wert wird in einem bestimmten Zeitformat formatiert. Auch die Eingabe wird unscharf sein. Das funktioniert alles prima.

Das Problem ist, dass ich auch einige Schaltflächen im Formular mit habe ng-click Richtlinie. Und wenn ich treffe Eintretendie Aktion der ng-click Direktive wird ebenfalls aufgerufen. Obwohl ich laufe e.preventDefault();

Dies ist der Code meiner Direktive:

$element.keyup(function(e) {
  var keyCode = e.keyCode || e.witch;

  if (keyCode == 13) {
    $element.blur();

    // Do some more stuff here
    e.preventDefault();
    return false;
  }
});

Und der HTML-Code:

<button class="btn btn-default" ng-click="openModal()">
  <i class="icon-info-sign"></i>
</button>

Das Komische ist, dass die timepicker Direktive funktioniert wie erwartet und zusätzlich die openModal() Funktion wird aufgerufen. Wie verhindere ich das?

Ihre Schaltfläche benötigt a type="button". Standardmäßig ist es type="submit" Aus diesem Grund wird es beim Absenden des Formulars aufgerufen.

Es sieht auch so aus, als müssten Sie das Absenden des Formulars verhindern, wenn Sie die Eingabetaste drücken, aber das ist ein anderes Problem.

  • Komischerweise reagiert mein “

  • Schön! Habe mein Problem gelöst ;).

    – Crushnik

    28. Juni 2018 um 7:02 Uhr

1054360cookie-checkVerhindern Sie die ng-Klick-Aktion beim Drücken der Eingabetaste

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy