Chcę, aby Pietruszka nie sprawdzała poprawności danych wejściowych, jeśli nie jest widoczna. Mam dużą wieloetapową ankietę, która pokazuje nowe sekcje podczas jej wypełniania. Każda sekcja znajduje się w osobnym tagu, a w każdej z nich mogę mieć wiele sekcji, które się ujawniają podczas jej przechodzenia. Obecnie używam 1.x, a to w jaki sposób mogę to zrobić teraz:Parsley JS 2.x - wyłączenie sprawdzania poprawności dla pól, które nie są widoczne
$('#' + 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;
}
}
Jest w sekcji słuchaczom, że mogę tylko potwierdzić pola, które są widoczne. Jak mogę to zrobić w Pietruszka 2.x? Przechodzę przez dokumentację i nie mogę znaleźć równoważnego sposobu robienia tego. Wiem, że są grupy sprawdzania poprawności w wersji 2.x, ale czy istnieje sposób, aby po prostu zrobić to tak, jak zrobiłem to w 1.x?
Świetna odpowiedź, zaoszczędziła mi sporo czasu. Myślę, że to całkiem eleganckie, biorąc pod uwagę, że pracujesz nad wtyczką ... – ambe5960
Dodałbym, że chcesz być ostrożny używając tego, ponieważ będziesz chciał wyczyścić instancje sprawdzania poprawności, jeśli przełączasz widoczność ukrytych pól (pól) z powrotem do widocznego. – ambe5960
@Potherca: dzięki za twoją aktualizację. Próbowałem go przetestować, ale używałem wersji 2.0.7 zamiast wersji 2.1.2 (cdnjs.com nie ma najnowszej wersji) i dlatego wycofałem twoją edycję. Po głębszym wykopaniu zdałem sobie sprawę, że ma to coś wspólnego z wersją 2.1, a ja nieco zmodyfikowałem twoją edycję. Dzięki! –