jQuery Plugin convalida Casella errorPlacement

voti
1

Ho un gruppo di caselle di controllo che tutti hanno lo stesso nome. Tutti hanno valori diversi. Sono solo una parte di un modulo. Non fanno l'intero modulo. Voglio che le caselle di controllo per visualizzare il loro errore dopo l'ultima casella di controllo di quel gruppo.

è possibile fare qualcosa di simile in jQuery?

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

Come potrei fare per fare questo?

Grazie,
Ian McCullough

È pubblicato 06/07/2009 alle 21:10
fonte dall'utente
In altre lingue...                            


4 risposte

voti
0

Non poteva fare solo

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
Risposto il 06/07/2009 a 21:43
fonte dall'utente

voti
0

Qual è la 'label' variabile facendo nel vostro codice?

Non dovresti utilizzare la variabile 'errore'?

error.insertAfter(checkboxes[checkboxes.length-1]);
Risposto il 06/07/2009 a 21:49
fonte dall'utente

voti
2

Mi rendo conto che questa è una domanda vecchio ma, avevo bisogno di una funzionalità simile in un form e risolto.

Utilizzando jQuery 1.4.2

Quindi, dato il seguente modulo.

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

Quindi è possibile eseguire le seguenti operazioni

$("#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);
        }
    }
});
Risposto il 14/05/2010 a 16:14
fonte dall'utente

voti
1

Ecco una soluzione generica che funzionerà con tutte le caselle di controllo sulla pagina. Si inserirà un messaggio di errore dopo l'ultima casella di controllo del gruppo.

$('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);
    }
});
Risposto il 18/03/2014 a 23:06
fonte dall'utente

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