2014-09-23 13 views
11

Mam formularz, który ma zarówno ng-click i ng-submit.AngularJS - jak korzystać z ng-click bez przesyłania formularza?

ng-submit jest przeznaczona do składania, natomiast ng kliknięcie wywołuje oddzielna funkcja jak przesłać, itp

Jak mogę się upewnić, że ng-click nie przypadkowo wysyła formularz?

dziękuję!

+0

Możliwy duplikat: http://stackoverflow.com/questions/12319758/angularjs-clicking-a-button-within-a-form-causes-page-refresh – steampowered

Odpowiedz

38

ngClicknie przesyła formularza przez.

Czasami możesz napotkać problemy, ponieważ masz dwa elementy button w swoim form i oba je przesyłają. Aby tego uniknąć, określ na nim typ "button". Przykład:

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

dzięki! dodanie przycisku "=" do wszystkich przycisków rozwiązuje problem! – ssxdots

+0

Tak, nie wiem, dlaczego nie jest to domyślne zachowanie ... – meriadec

+1

Można przypuszczać, że wystarczy dodać atrybut 'type =" button "' na elemencie '

Powiązane problemy