Plugin jQuery Validation avec deux boutons de soumission?
J'ai un formulaire avec près de 50 champs et les deux boutons submit, "enregistrer" et "ENREGISTRER & SUBMIT".
Si l'utilisateur clique sur "ENREGISTRER", puis de valider seules certaines valeurs, par exemple. champ1, champ2. Lorsque l'utilisateur clique sur "ENREGISTRER & SUBMIT", il doit valider tous les 50 champs et de se soumettre.
<form id="myform">
<input type="text" name="field1" />
<br/>
<input type="text" name="field2" />
<br/>
<input type="text" name="field3" />
<br/>
<input type="text" name="field4" />
<br/>
<input type="submit" id="button1" value="Save" />
<input type="submit" id="button2" value="Submit" />
</form>
$(document).ready(function () {
$('#button1').click(function(){
$("#myform").validate({
rules: {
field1: {
required: true
},
field2: {
required: true
}
},
submitHandler: function (form) { //for demo
alert("data saved");
}
});
});
$('#button2').click(function(){
$("#myform").validate({
rules: {
field1: {
required: true
},
field2: {
required: true
},
field3: {
required: true
},
field4: {
required: true
}
},
submitHandler: function (form) { //for demo
alert("data submited");
}
});
});
});
J'ai créé jsfiddle pour cela: exemple de test
source d'informationauteur Ajit Singh
Vous devez vous connecter pour publier un commentaire.
Votre code...
Vous absolument ne peut pas ce faire:
1) Vous ne pouvez pas appeler le
.validate()
méthode plusieurs fois sur le mêmeform
. Les appels suivants sont toujours ignorés.2) Vous ne devriez pas mettre la
.validate()
méthode à l'intérieur d'unclick
gestionnaire. Le.validate()
méthode est la initialisation méthode du plugin et ne reçoit appelé une fois dans un DOM prêt de gestionnaire d'événements. Après un bon initialisationcliquez sur le bouton soumettre est capturée automatiquement par le plugin.Balisage HTML et Cliquez sur Gestionnaires de:
Ce plugin capture automatiquement les cliquez de toute
input type="submit"
etbutton type="submit"
éléments et initie la validation et de la soumission.Donc, si vous avez besoin de contrôler ce qui se passe pour les deux boutons différents, alors vous avez besoin d'abord de changer vos boutons en
input type="button"
oubutton type="button"
éléments.Ensuite, vous pouvez utiliser
click()
gestionnaires de modifier dynamiquement les règles avec la.rules()
méthodes comme par quel bouton a été cliqué. Voir le.règles()
méthodes de la documentation.Utilisation
.submit()
par programmation soumettre. En d'autres termes, cela va déclencher un test de validation et de tenter de soumettre le formulaire valide SI... comme si vous aviez unsubmit
bouton.Utilisation
.valide()
par programme de test de la forme. En d'autres termes, cela va déclencher un test de validation, mais ne sera PAS soumettre le formulaire SI valide.Exemple:
De travail de DÉMONSTRATION: http://jsfiddle.net/Kt93M/
La démo est tout simplement l'original de votre jsFiddle avec ces principes s'appliquent.