jQuery Validation Plugin selectievakje errorPlacement

stemmen
1

Ik heb een groep van vakjes die allemaal dezelfde naam. Ze hebben allemaal verschillende waarden. Ze zijn slechts een onderdeel van een formulier. Ze hebben geen deel uitmaken van het gehele formulier. Ik wil het keuzevak in om hun fout weer na de laatste checkbox van die groep.

is het mogelijk om iets als dit te doen in jQuery?

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

Hoe zou ik dat doen?

Bedankt,
Ian McCullough

De vraag is gesteld op 06/07/2009 om 21:10
bron van user
In andere talen...                            


4 antwoorden

stemmen
0

Kan je niet gewoon doen

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
antwoordde op 06/07/2009 om 21:43
bron van user

stemmen
0

Wat is de variabele 'label' doen in uw code?

Mocht u niet de 'fout' variabele gebruiken?

error.insertAfter(checkboxes[checkboxes.length-1]);
antwoordde op 06/07/2009 om 21:49
bron van user

stemmen
2

Ik realiseer me dat dit een ouder vraag, maar ik moest vergelijkbare functionaliteit op een formulier en opgelost.

Met behulp van jQuery 1.4.2

Dus gegeven het volgende formulier.

<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"/>

Dan kunt u het volgende doen

$("#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);
        }
    }
});
antwoordde op 14/05/2010 om 16:14
bron van user

stemmen
1

Hier is een generieke oplossing die werkt met alle vakjes op de pagina. Het zal een foutmelding te voegen na het laatste vakje van de groep.

$('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);
    }
});
antwoordde op 18/03/2014 om 23:06
bron van user

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