Gravity Forms Как подписаться на событие валидации?
В WP используется плагин Gravity Forms с вот таким подключением формы по AJAX
отправке
[gravityform id="2" title="false" description="false" ajax="true" required_legend="false"]
Вопрос, можно ли при помощи JS подписаться на событие о том, что форма не прошла валидацию, чтобы выполнить свою функцию?
В документации нашел, про gform_post_render, но оно срабатывает, как только отрисовало форму, а мне надо именно когда при отправке вернуло с ошибкой.
Что-то типа такого:
$(document).on('gform_post_validation', function(formId, isValid) {
if (formId === 2) {
console.log("Form ID 2 validation result: " + isValid);
$('.gfield_contains_required input').each(function() {
let $label = $(this).closest('.gfield_contains_required').find('label');
if ($(this).val().trim() === '') {
$label.addClass('hidden');
} else {
$label.removeClass('hidden');
}
});
}
});
Только там нет метода gform_post_validation
Ответы (1 шт):
Автор решения: BlackStar1991
→ Ссылка
Посоветовали, вот такое решение, в соответствии с рекомендациями.
$(document).bind('gform_post_render', function (e, formId) {
if ( $('.gform_validation_errors').length > 0 ) {
if (formId === 2) {
$('.gfield_contains_required input').each(function () {
let $label = $(this).closest('.gfield_contains_required').find('label');
if ($(this).val().trim() === '') {
$label.removeClass('hidden');
} else {
$label.addClass('hidden');
}
});
}
}
});
проблема была ещё и в том что на странице было сразу несколько форм.