J'ai un formulaire simple. Il a un champ et un bouton de soumission. Je cache le bouton de soumission. Le bouton de soumission est en fait déclenché avec une balise d'ancrage qui appelle une méthode javascript qui utilise jQuery pour obtenir l'élément et exécuter un clic(). Cela fonctionne très bien, les messages de formulaire et l'enregistrement est correctement écrit dans la base de données.xVal et jQuery Envoyer le bouton
Alors maintenant, j'ai ajouté xVal pour validation. J'essaie d'ajouter dans la validation côté client simple.
Cela ne fonctionne pas lorsque je clique sur l'étiquette d'ancrage. Cependant, si je décoche le bouton Soumettre et que j'essaie de poster le formulaire avec cela au lieu d'utiliser la balise d'ancrage qui appelle la méthode js, cela fonctionne. Donc, fondamentalement, j'essaie de comprendre pourquoi cela ne fonctionne pas lorsque j'utilise la méthode js pour déclencher le clic sur le bouton Soumettre.
Des idées géniales? Merci beaucoup!
Heres un code ...
<div id="manufacturerButtons" class="moduleRow">
<%= Html.ActionImage(Url.Content("~/Content/Icons/bullet_go_back.png"), "Back To Admin", "Admin", "Admin")%>
| <a class="actionImage" href="javascript: addManufacturer();">
<img border="0" src="<%= Url.Content("~/Content/Icons/accept.png")%>"> <span>Add
Manufacturer </span></a>
</div>
<div class="moduleContent">
<div id="manufacturerContainer">
<div class="moduleRow">
<h3>
New Manufacturer</h3>
</div>
<div class="moduleRow">
<% Html.BeginForm("NewManufacturer", "Admin", FormMethod.Post); %>
<table class="noBorder" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 125px">
<h6>Name:</h6>
</td>
<td>
<%= Html.TextBox("Name") %>
</td>
</tr>
<tr style="display: none;">
<td>
</td>
<td>
<input type="submit" id="btnAdd" name="btnAdd" />
</td>
</tr>
</table>
<% Html.EndForm(); %>
<%= Html.ClientSideValidation<EquipmentManufacturer>() %>
</div>
</div>
Javascript:
function addManufacturer() {
//$('form').submit(); // doesnt work when trying to validate either
$('#btnAdd').click();
return true;
}
Cela fait à peu près l'a fait. J'ai dû le changer un peu mais votre idée était à peu près juste. J'ai dû ajouter un formulaire() pour le faire fonctionner. Voici ce que j'ai fait ... function addManufacturer() { var valide = $ (document.forms [0]). Validate() .form(); Si (valide) { $ ('# btnAdd'). } } – Gabe