jQuery Validation Plugin Checkbox errorPlacement

voix
1

J'ai un groupe de cases à cocher qui ont toutes le même nom. Tous ont des valeurs différentes. Ils ne sont qu'une partie d'un formulaire. Ils ne font pas le formulaire. Je veux que les cases à cocher pour afficher leur erreur après la dernière case de ce groupe.

est-il possible de faire quelque chose comme ça dans jQuery?

$(#myform).validate({
  errorPlacement: function(error, element) {
     var checkboxes = $(#checkboxes);
     if(checkboxes.contains(element))
        label.insertAfter(checkboxes[checkboxes.length-1]);
   },
   debug:true
 })

Comment dois-je prendre?

Merci,
Ian McCullough

Créé 06/07/2009 à 21:10
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
0

Ne pourriez-vous le faire

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
Créé 06/07/2009 à 21:43
source utilisateur

voix
0

Quel est le label «variable faire dans votre code?

Vous ne devriez pas utiliser la variable « d'erreur »?

error.insertAfter(checkboxes[checkboxes.length-1]);
Créé 06/07/2009 à 21:49
source utilisateur

voix
2

Je me rends compte que c'est une question plus mais je avais besoin des fonctionnalités similaires sur un formulaire et résolu.

En utilisant jQuery 1.4.2

Ainsi, compte tenu de la forme suivante.

<form id="checkForm" method="get" action="">
<ul id="checkboxes">
    <li><input type="checkbox" name="checkOne" id="checkOne" value="1" /></li>
    <li><input type="checkbox" name="checkTwo" id="checkTwo" value="2" /></li>
    <li><input type="checkbox" name="checkThree" id="checkThree" value="3" /></li>
</ul>
<input class="submit" type="submit" value="Submit"/>

Ensuite, vous pouvez effectuer les opérations suivantes

$("#checkForm").validate({
    rules: {
        checkOne: "required",
        checkTwo: "required",
        checkThree: "required"
    },
    errorPlacement: function(error, element) {
        if ($("#checkboxes").has(element).size() > 0) {
            error.insertAfter($("#checkboxes input:checkbox:last"));
        } else {
            error.insertAfter(element);
        }
    }
});
Créé 14/05/2010 à 16:14
source utilisateur

voix
1

Voici une solution générique qui fonctionnera avec toutes les cases de la page. Il insérera un message d'erreur après la dernière case du groupe.

$('form').validate({
    rules: {
        checkbox_group_1: {
            required: true
        },
        checkbox_group_2: {
            required: true,
        }
    },
    errorPlacement: function(error, element) {
        if (element.is(':checkbox'))
            error.insertAfter($('input[name=' + element.attr('name') + ']').last());
        else
            error.insertAfter(element);
    }
});
Créé 18/03/2014 à 23:06
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more