Petersilie JS-2.x - deaktivieren der Validierung für Felder, die nicht sichtbar sind
Möchte ich Petersilie nicht validiert eine Eingabe, wenn es nicht sichtbar ist. Ich habe ein großes multi-step-Umfrage zeigt, dass neue Abschnitte, wie Sie Sie abgeschlossen haben. Jeder Abschnitt ist in seiner eigenen tag, und in jeder form, ich kann mehrere Abschnitte, die zeigen, wie Sie durch Sie gehen. Ich bin derzeit mit 1.x, und dies ist, wie ich es jetzt tun:
$('#' + formID).parsley({
errors : {
container: function(element) {
var $container = element.parent().find('parsley-container');
if($container.length === 0)
{
if($(element).hasClass('text-hide') && !$(element).hasClass('not-select'))
{
$(element).prev().addClass('is-error');
}
else
{
$container = $('<div class="parsley-container"></div>').insertAfter(element);
}
}
return $container;
}
},
listeners: {
onFieldValidate: function(elem) {
if(!$(elem).is(':visible'))
{
return true;
}
return false;
}
}
Ist es in der listeners-Abschnitt, dass ich nur die Felder überprüfen, die sichtbar sind. Wie kann ich das in Petersilie 2.x? Ich habe gehen durch die Dokumentation und ich kann nicht finden, eine gleichwertige Weise, es zu tun. Ich weiß, es gibt Validierungs-Gruppen in der 2.x, aber gibt es eine Möglichkeit, es einfach zu tun, wie ich in 1.x?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die einfachste Lösung, um auszuschließen, alle versteckten Eingänge, wie diese:
Diese Art der Validierung wird nur an den sichtbaren Eingängen. Aber das zwingt Sie zu zerstören und anwenden Petersilie jedes mal, wenn ein Eingang ändert seine Sichtbarkeit.
Um dies zu vermeiden, können Sie die folgenden «nicht so elegante» Lösung. Dieser code wäre besser in der "Petersilie:Feld:bestätigen" - Veranstaltung sein, aber ich konnte nicht damit es funktioniert.
Verwendung der 'Petersilie:Feld:validiert', die überprüfung wurde bereits durchgeführt und nun wechseln wir das Ergebnis der Validierung zu wahren und ausblenden des Fehler-Containers.
Als Petersilie 2.1.* die Veranstaltung
parsley:field:validated
wirft die folgende MeldungStatt
parsley:field:validated
sollten Sie die Veranstaltungfield:validated
Den neuesten Versionen haben
$.listen()
veraltet. Sollten Sie verwendenParsley.on()
statt. Beispiel:$.listen
war veraltet (wie in diesem Kommentar). VerwendenParsley.on()
statt. Ich habe aktualisiert die Antwort. Danke!