2015-09-25 5 views
5

Ich habe ein Formular, dessen ng-submit mit der nächsten Frage zu verschieben ist.Formular ng-click löst ng-submit

 <form ng-submit="BC.next()" novalidate> 
      <input type="submit" value="Next Question"/> 
      <button id="previous" ng-click="BC.previous()">Previous Question</button> 

Jedes Mal, wenn ich auf der vorherigen Schaltfläche klicken, wird nach der Ausführung, löst er dann die BC.next() ich so verwirrt bin, weiß jemand, warum dies geschieht? Ich habe sogar versucht, das <input type="submit">-Tag mit einer </input> zu schließen, aber das hat es nicht behoben.

+0

Verhindern Sie die Standardaktion des Formulars, wenn Sie auf die Schaltfläche klicken –

Antwort

10

Stellen Sie sicher, dass alle anderen Schaltflächen im Formular, die nicht gesendet werden, von type="button" stammen.

<form ng-submit="BC.next()" novalidate> 
      <input type="submit" value="Next Question"/> 
      <button type="button" id="previous" ng-click="BC.previous()">Previous Question</button> 

Sie können die Details sehen: How to prevent buttons from submitting forms

TL; DR für die Post: HTML5 defaults <button> als <button type="submit"> so müssen Sie dies manuell ändern.

+0

Wow so interessant! wie hast du das gewusst? Ist das irgendwo geduckt? Oder ist es erwartetes Verhalten von Javascript? – Noitidart

+0

Ah danke für deine Bearbeitung! Das ist also JavaScript-Verhalten, oder? Stack lässt mich für 8 Minuten keine Entschuldigung akzeptieren, bitte entschuldigen Sie das. – Noitidart

+1

Dies ist eines der ersten Probleme, wenn Sie mit Angular und Javascript arbeiten, so dass Sie sich schnell damit vertraut machen. – Shikloshi

Verwandte Themen