J'essaie d'obtenir un formulaire de connexion à soumettre lorsque l'utilisateur appuie. Le formulaire fonctionne parfaitement bien lorsque le bouton "Login" est cliqué, mais appuyez sur enter ne fonctionne pas et, en outre, provoque un comportement étrange:
ng-submit
n'est pas exécutée Voici mon balisage:
<form ng-submit="login()" class="login-form"> <div class="alert alert-danger" ng-class="{ 'display-hide': !showError }"> <button class="close" data-close="alert"></button> <span> Login failed </span> </div> <div class="form-group"> <label class="control-label visible-ie8 visible-ie9">Username</label> <input class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username" ng-model="username"/> </div> <div class="form-group"> <label class="control-label visible-ie8 visible-ie9">Password</label> <input class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="password"/> </div> <div class="form-actions"> <button class="btn btn-success uppercase">Login</button> </div> </form>
Notez que j'ai essayé de remplacer <button...>
par <input type="submit"...>
sans succès non plus.
Le contrôleur correspondant avec la fonction login () – ressemble comme suit:
.controller('LoginCtrl', ['$rootScope', '$scope', ..., function LoginController ($rootScope, $scope, ...) { $scope.showError = false; $scope.login = function() { console.log("logging in"); $http({ url: $scope.apiEndpointLogin, method: 'POST', data: {'username': this.username, 'password': this.password} }).then(function(response) { $scope.showError = false; [...] }, function() { $scope.showError = true; }); }; }]);
Je cours angular v1.4.0 et j'utilise angular-ui-router v.0.2.15 pour le routage.
Merci pour toute contribution, très appréciée.
Mettez celui-ci
<input type="submit" class="btn btn-success uppercase" value="Login" >
au lieu de
<button class="btn btn-success uppercase">Login</button>
Pour le bouton de soumission de formulaire, il faut indiquer le type de soumission.
CODE DE RÉGLAGE:
<form class="login-form" ng-submit="login()" > <div class="alert alert-danger" ng-class="{ 'display-hide': !showError }"> <button class="close" data-close="alert"></button> <span> Login failed </span> </div> <div class="form-group"> <label class="control-label visible-ie8 visible-ie9">Username</label> <input class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username" ng-model="username"/> </div> <div class="form-group"> <label class="control-label visible-ie8 visible-ie9">Password</label> <input class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="password"/> </div> <div class="form-actions"> <input type="submit" class="btn btn-success uppercase" > </div> </form>
Vérifiez également si votre LoginCtrl est situé au-dessus de votre formulaire DOM.
CODE DE RÉGLAGE:
Veuillez vérifier ce plongeur
Au lieu d'utiliser Button <input type ="submit" />