Ho un modulo che desidero convalidare utilizzando the jQuery Validation plugin. Attualmente ho un problema con l'elemento input con array (name="inputname[]"
) che vengono creati dinamicamente con jQuery .on()
. Lasciatemi spiegare il problema:jQuery Convalida l'elemento di input della matrice che viene creato dinamicamente
- C'è un modulo, con un testo di input esistente denominato
name[]
. - C'è un pulsante per aggiungere più testi di input e questo elemento viene eseguito con .on(). Ho cliccato 2 o 3 volte, quindi ci saranno più di 1 testo di input.
- Faccio clic su Invia, il modulo è correttamente convalidato ma convalida solo il primo elemento di matrice creato e non l'altro elemento.
Per il codice completo ho creato un jsfiddle qui: http://jsfiddle.net/ThE5K/4/
jQuery:
$(document).ready(function() {
// MODE 1
// With [] or array name <<<< this one is not working
$("#addInput").on('click', function() {
$('#inputs').append($('<input class="comment" name="name[]" />'));
});
/* MODE 2
Without [] or array name <<<< this one is working
var numberIncr = 1;
$("#addInput").on('click', function() {
$('#inputs').append($('<input class="comment" name="name' + numberIncr + '" />'));
numberIncr++;
});
*/
$('form.commentForm').on('submit', function (event) {
$('input.comment').each(function() {
$(this).rules("add", {
required: true
})
});
event.preventDefault();
console.log($('form.commentForm').valid());
})
$('form.commentForm').validate();
});
HTML:
<form class="commentForm">
<div id="inputs"></div>
<input type="submit" />
<span id="addInput">add element</span>
</form>
creo due modalità di loro, l'interno lavorando uno (testo di input dinamico cono nome dell'array ut) e quello non funzionante (testo di input dinamico con nome dell'array).
io siamo andati anche se coloro soluzione, ma purtroppo nessuno di loro ha lavorato:
- jquery validate add rules for an array input
- jquery validate is not working with dynamic content
- jQuery validate dynamic input array
prega di aiuto.
Si sta aggiungendo le regole quando il modulo viene inviato. Questo è tutto sbagliato. Dovresti aggiungere le tue regole subito dopo aver creato i nuovi campi. – Sparky
Si prega di includere abbastanza codice in OP per creare una demo concisa. Il tuo OP dovrebbe essere completamente "autonomo" e non dipendere da collegamenti esterni. Ho modificato il tuo OP per includere il codice completo. – Sparky