jQuery Validering Plugin Checkbox errorPlacement

stemmer
1

Jeg har en gruppe av boksene som alle har samme navn. De har alle forskjellige verdier. De er bare en del av et skjema. De gjør ikke opp hele skjemaet. Jeg ønsker i boksene for å vise sine feil etter den siste boksen av denne gruppen.

er det mulig å gjøre noe som dette i jQuery?

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

Hvordan skulle jeg gå om du gjør dette?

Takk,
Ian McCullough

Publisert på 06/07/2009 klokken 20:10
kilden bruker
På andre språk...                            


4 svar

stemmer
0

Kunne du ikke bare gjøre

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
Svarte 06/07/2009 kl. 20:43
kilden bruker

stemmer
0

Hva er den variable 'label' gjør i koden din?

Skulle du ikke bruke 'feil' variabel?

error.insertAfter(checkboxes[checkboxes.length-1]);
Svarte 06/07/2009 kl. 20:49
kilden bruker

stemmer
2

Jeg innser at dette er en eldre spørsmålet, men jeg trengte lignende funksjonalitet på et skjema og løste den.

Ved hjelp av jQuery 1.4.2

Så gitt følgende form.

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

Deretter kan du gjøre følgende

$("#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);
        }
    }
});
Svarte 14/05/2010 kl. 15:14
kilden bruker

stemmer
1

Her er en generisk løsning som vil fungere med alle boksene på siden. Det vil sette en feilmelding etter den siste boksen av gruppen.

$('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);
    }
});
Svarte 18/03/2014 kl. 22:06
kilden bruker

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