javascript - type - ng-submit no funciona en angularjs
ng submit not working (6)
Mi vista:
<div class="modal" tabindex="-1" role="dialog" ng-controller="LocationController">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" ng-click="$hide()">×</button>
<h4 class="modal-title">
Add a Location
</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form" ng-submit="createLocation()">
<div class="form-group">
<label class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" placeholder="Warehouse A, Row 15, Shelf BC1, etc" ng-model="name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Type</label>
<div class="col-sm-10">
<input type="text" class="form-control" placeholder="warehouse, row, shelf, etc" ng-model="type">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save</button>
<button type="button" class="btn btn-danger" ng-click="$hide()">Cancel</button>
</div>
</div>
</div>
</div>
Mi controlador
angular.module(''mean'').controller(''LocationController'', [''$scope'', ''$location'', ''$rootScope'', ''LocationService'', ''$modal'', ''$routeParams'', function ($scope, $location, $rootScope, LocationService, $modal, $routeParams) {
$scope.createLocation = function() {
alert(''afds'');
LocationService.create(this).then(function(response) {
console.log(response);
});
}
}]);
Sin embargo, cuando hago clic en guardar, no recibo la alerta. No estoy seguro de lo que está pasando allí.
El error más tonto de todos, asegúrate de estar compilando tu código js.
Esto también afecta, tiene que haber un botón de envío en el formulario (botón o tipo de entrada = "enviar") o ng-submit no funcionará.
Gracias al comment Matt Way : resulta que mi botón de guardar estaba fuera de mi formulario. Fijo
Incluso si el botón está dentro del formulario y aún ng-submit
no funciona, cambie el type
botón para enviar .
<button type="submit" class="btn btn-success" ng-click="login()">Login</button>
PS: Otras respuestas no me ayudaron hasta que cambié el tipo de botón para submit
. Espero que esto ayude.
Para mí, el problema era la etiqueta ''requerida'' en uno de los campos del formulario. Después de quitar esta etiqueta el formulario funcionó de nuevo. La forma antigua de resolver tales problemas es tratar de comentar parte de su formulario y ejecutar el código.
Prefiero usar la etiqueta ''novalidate'' en el formulario, y el botón con type = "submit", para que la validación del formulario se realice de forma angular.
Tal vez debería agregar el atributo ''novalidate'' en la etiqueta de formulario para evitar la validación del navegador nativo como se indica aquí https://docs.angularjs.org/guide/forms