En cliquant sur le bouton, le formulaire sera actualisé.
P粉523625080
P粉523625080 2023-08-14 20:46:02
0
2
464
<p>J'ai un formulaire en Angular avec deux étiquettes de boutons. Un bouton soumet le formulaire en appuyant sur <code>ng-click</code>. L'autre bouton est uniquement destiné à la navigation à l'aide de <code>ng-click</code>. Cependant, lorsque ce deuxième bouton est cliqué, AngularJS provoque l'actualisation de la page, déclenchant une erreur 404. Je définis un point d'arrêt dans la fonction et cela déclenche ma fonction. Si j'effectue l'une des opérations suivantes, le système s'arrête : </p> <ol> <li>Si je supprime <code>ng-click</code>, le bouton n'actualise pas la page. ≪/li> <li>Si je commente le code dans la fonction, la page ne s'actualise pas. ≪/li> <li>Si je remplace l'étiquette du bouton par une étiquette d'ancrage (<code><a></code>) et que j'ajoute <code>href=""</code>, cela ne provoque pas de rafraîchir . ≪/li> </ol> <p>Cette dernière semble être la solution la plus simple, mais pourquoi AngularJS exécute-t-il du code après ma fonction qui provoque le rechargement de la page ? On dirait un bug. </p> <p>Voici le formulaire :</p> <pre class="brush:php;toolbar:false;"><form class="form-horizontal" name="myProfile" ng-switch-when="profile"> <ensemble de champs> <div class="groupe-contrôle"> <label class="control-label" for="passwordButton">Mot de passe</label> <div class="contrôles"> <button id="passwordButton" class="secondaryButton" ng-click="showChangePassword()">Changer</button> </div> </div> <div class="buttonBar"> <button id="saveProfileButton" class="primaryButton" ng-click="saveUser()">Enregistrer</button> </div> </fieldset> </form></pre> <p>Voici la méthode du contrôleur : </p> <pre class="brush:php;toolbar:false;">$scope.showChangePassword = function() { $scope.selectedLink = "changePassword"; };</pré> <p><br /></p>
P粉523625080
P粉523625080

répondre à tous(2)
P粉637866931

Vous pouvez essayer de bloquer le gestionnaire par défaut :

html :

<button ng-click="saveUser($event)">

js :

$scope.saveUser = function (event) {
  event.preventDefault();
  // 你的代码
}
P粉821274260

Si vous regardez les spécifications W3C , il semble que la chose évidente à essayer est de marquer type='button' sur les éléments des boutons que vous ne souhaitez pas soumettre.

Portez une attention particulière à l'emplacement indiqué

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal