2014-09-23 10 views
11

Ich habe ein Formular, das sowohl ng-click als auch ng-submit hat.AngularJS - Wie benutzt man ng-click, ohne das Formular zu senden?

ng-Einreichung für die Einreichung gemeint, während ng-Klick eine eigene Funktion wie Upload-Anrufe usw.

Wie kann ich sicherstellen, dass ng-Klick trägt nicht zufällig die Form?

danke!

+0

Mögliche doppelte: http://stackoverflow.com/questions/12319758/angularjs-clicking-a-button-within-a-form-causes-page-refresh – steampowered

Antwort

38

ngClicknicht senden Sie das Formular ein.

Manchmal können Sie Probleme haben, weil Sie zwei button Elemente in Ihrem form haben, und beide reichen es ein. Um dies zu vermeiden, geben Sie den Typ "button" ein. Beispiel:

function demo ($scope) { 
 
    
 
    $scope.doSubmit = function() { 
 
    alert('I submit'); 
 
    }; 
 
    
 
    $scope.doClick = function() { 
 
    alert('I click'); 
 
    }; 
 
    
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app ng-controller="demo"> 
 
    
 
    <form ng-submit="doSubmit()"> 
 
    <button type="button" ng-click="doClick()">click</button> 
 
    <button type="submit">submit</button> 
 
    </form> 
 
    
 
</div>

+1

Dank! Durch Hinzufügen des type = "buttons" zu all meinen Tasten lösen Sie das Problem! – ssxdots

+0

Ja, ich weiß nicht, warum es nicht das Standardverhalten ist ... – meriadec

+1

Man könnte vermuten, dass nur das Attribut 'type =" button "' auf dem '' Element hinzugefügt wird. Danke für die Lösung! –