En cliquant sur le bouton, le formulaire sera actualisé.
P粉523625080
2023-08-14 20:46:02
<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>
Vous pouvez essayer de bloquer le gestionnaire par défaut :
html :
js :
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é