web-dev-qa-db-fra.com

Désactiver la validation côté client dans MVC 3 "annuler" le bouton d'envoi

OK, j'essaye depuis des heures et je pourrais avoir besoin d'aide. J'essaie d'implémenter une page dans MVC 3 qui a des boutons "retour" et "suivant". Lorsque vous cliquez sur le bouton Précédent, je souhaite désactiver la validation MVC côté client afin que ma méthode d'action s'exécute et envoie l'utilisateur à la page Web logique précédente. J'ai essayé ça:

<script type="text/javascript">
  document.getElementById("backButton").disableValidation = true;
</script>

et ça:

<input type="submit" name="backButton" value="← Back" 
 title="Go back to step 1." disableValidation="true" />

Quoi qu'il en soit, la validation côté cilent JavaScript entre en jeu et ne laisse pas le bouton faire son post-back. Je pense que disableValidation ne fonctionne que dans MVC 2 peut-être, et je suis censé faire autre chose dans MVC 3, mais ne semble pas trouver d'exemples.

54
Glenn Doten

Quelle est cette force mystique qui fait que la réponse se révèle dès que vous postez une question quelque part?

Il semble que dans MVC 3, vous désactivez la validation côté client sur un bouton en y ajoutant la classe "cancel". Donc dans mon exemple:

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="cancel" />

fonctionne très bien. Et aucun attribut ID n'est nécessaire non plus. Si vous avez une classe de style réelle sur le bouton, procédez comme suit:

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="style-name cancel" />
125
Glenn Doten

Les scripts de validation semblent liés au type de soumission input. En changeant cancel en bouton, la validation est ignorée:

<button type="button" onclick="document.location.href('Index')">Cancel</button>
1
David