J'ai un formulaire ASP.NET MVC 2 qui fonctionne parfaitement, en effectuant une validation côté client (en utilisant des annotations de données). Chaque fois que les utilisateurs cliquent sur le bouton Soumettre, la validation côté client intervient avant que le formulaire ne soit réellement renvoyé au serveur.Comment soumettre un formulaire ASP.NET MVC en utilisant javascript et valider encore du côté client?
Ceci est le code réel, des choses vraiment de base:
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) { %>
<%= Html.ValidationSummary(true) %>
<%: Html.EditorForModel() %>
<p>
<input type="submit" value="Save" />
</p>
<% } %>
Voici mon problème: je veux soumettre le formulaire à l'aide d'un bouton qui est pas dans le < FORM> </FORM> comme un dans l'échantillon ci-dessus. Ce bouton doit être placé à l'intérieur d'un < DIV> séparé sur la page qui fonctionne comme une barre d'outils pour tous les boutons et actions dans mon application.
Je suis en mesure de soumettre le formulaire en utilisant quelque chose comme ceci (en utilisant jQuery):
<asp:Content ID="Content2" ContentPlaceHolderID="ToolBarContent" runat="server">
<input type="submit" value="Save" onclick="$('#form0').submit();" />
</asp:Content>
Le seul problème est que cela ne déclenche pas la validation du côté client, comme si l'utilisateur cliquait dans la bouton de soumission normal. L'ensemble du formulaire est renvoyé, la validation côté serveur est effectuée et la vue est à nouveau affichée, indiquant les erreurs de validation.
Je ne veux pas avoir ce bouton habituel de soumission avec le formulaire, il suffit d'avoir celui-ci dans la barre d'outils, alors y a-t-il un moyen d'y parvenir? Avoir un bouton séparé appelle l'envoi du formulaire tout en déclenchant la validation côté client pour le formulaire?
Man ... Vous êtes rapide !!! ... :) Votre solution ne fonctionne pas vraiment, même Bien qu'il semble un peu hacky, comme vous l'avez dit. Si personne d'autre ne trouve un meilleur moyen, je vais le laisser comme ça et prendre votre réponse pour ça :) Merci mon gars! –