ici je donne mon html. J’ai une liste déroulante qui montre peu d’informations sur les produits et les loisirs par case à cocher. Je veux que si l’utilisateur sélectionne le produit iPod, la validation ne se déclenchera pas pour les cases à cocher des hobbies autrement sage comment effectuer ce type de validation conditionnelle par le plugin jquery validate en ajoutant des règles jquery.
var declarationsError = $('#Hobbies-error'); $('form').submit(function () { if ($("#SelectedProductId option:selected").text() != 'iPod') { if ($(".hobbycls:checkbox:checked").length <= 0) { declarationsError.empty(); declarationsError.append("Select Any Hobbie's checkbox"); declarationsError.show(); return false; } else { declarationsError.empty(); declarationsError.hide(); } } declarationsError.hide(); return true; }); $('.hobbycls').change(function () { if ($(this).is(':checked')) { declarationsError.empty(); declarationsError.hide(); // hide error message } });
le script ci-dessus fonctionne bien, mais je veux faire la même chose en utilisant jquery validate plugin ajoutant des règles.
alors s’il vous plaît guidez-moi ce que jquery valider le code que je dois écrire pour effectuer la même chose. montrez-moi comment faire ce type de validation conditionnelle en ajoutant des règles jquery. Merci
Vous avez des erreurs dans le code HTML produit:
Vous pouvez utiliser le validateur jQuery pour append une nouvelle règle afin de répéter exactement ce que vous faites dans vos deux fonctions jQuery:
Vous avez oublié de donner l’élément Hobbies-error, j’ai donc utilisé un div.
Dans l’extrait suivant:
var validator; // a new rule is required to test if iPod is selected and checkboxes are... $.validator.addMethod('checkboxMaxIfiPodNotSelected', function (value, elem, param) { var selectedOptionVal = $(param.selEleiSiPod).val().sortingm(); var selectedOptionText = $(param.selEleiSiPod).text().sortingm(); if (selectedOptionText != 'iPod') { if (selectedOptionVal.length > 0) { if ($(':checkbox.' + elem.classList[0] + ":checked").length <= param.max) { $('#Hobbies-error').empty().append("Select Any Hobbie's checkbox").show(); return false; } } else { $('#Hobbies-error').empty().append("Select a Product").show(); return false; } } $('#Hobbies-error').empty().hide(); return true; }); $(function () { // build the dynamic rules.... var myRules = {}; var myMessages = {}; $(':checkbox.hobbycls').each(function (index, element) { myRules[element.name] = { checkboxMaxIfiPodNotSelected: { max: 0, selEleiSiPod: '#SelectedProductId option:selected' } }; myMessages[element.name] = { checkboxMaxIfiPodNotSelected: function(params, element) { // it's not usefull to return a true error message because I used a div // but this is up to you how to manage and place the errors return ''; } }; }); // use the rules and messages with validator... validator = $('form').validate({ rules: myRules, messages: myMessages, submitHandler: function (form) { // for demo alert('valid form submitted'); // for demo return false; // for demo } }); });