jQuery Validierung Plugin Checkbox errorPlacement

stimmen
1

Ich habe eine Gruppe von Kontrollkästchen, die alle den gleichen Namen haben. Sie alle haben unterschiedliche Werte. Sie sind nur ein Teil eines Formulars. Sie haben nicht die gesamte Form bilden. Ich möchte, dass die Kontrollkästchen ihre Fehler nach dem letzten Kontrollkästchen dieser Gruppe anzuzeigen.

ist es möglich, so etwas wie dies in jQuery zu tun?

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

Wie würde ich mich über das tun dies?

Danke,
Ian McCullough

Veröffentlicht am 06/07/2009 um 21:10
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
0

Könnten Sie nicht nur tun

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
Beantwortet am 06/07/2009 um 21:43
quelle vom benutzer

stimmen
0

Was ist die Variable ‚label‘ in Ihrem Code zu tun?

Sollten Sie nicht verwenden, um den ‚Fehler‘ Variable?

error.insertAfter(checkboxes[checkboxes.length-1]);
Beantwortet am 06/07/2009 um 21:49
quelle vom benutzer

stimmen
2

Mir ist klar, dass dies eine ältere Frage aber, ich brauchte eine ähnliche Funktionalität in einem Formular und es gelöst.

Mit jQuery 1.4.2

So die folgende 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"/>

Dann können Sie wie folgt vorgehen

$("#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);
        }
    }
});
Beantwortet am 14/05/2010 um 16:14
quelle vom benutzer

stimmen
1

Hier ist eine generische Lösung, die mit allen Kontrollkästchen auf der Seite arbeiten. Es wird eine Fehlermeldung nach dem letzten Kontrollkästchen der Gruppe einzufügen.

$('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);
    }
});
Beantwortet am 18/03/2014 um 23:06
quelle vom benutzer

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