Удаление класса .was-validated после успешной отправки формы
Здравствуйте.
Помогите пожалуйста решить задачу:
Есть форма на сайте status777.ru
Сделана с помощью Bootstrap
Так вот, после успешной отправки, у самой формы появляется класс was-validated, его нужно удалить, чтобы сообщения об ошибках исчезали после успешной отправки.
Прошу помощи. я с яваскриптом особо не дружу, умею только встраивать.
Заранее благодарю.
Помогите пожалуйста решить задачу:
Есть форма на сайте status777.ru
Сделана с помощью Bootstrap
Так вот, после успешной отправки, у самой формы появляется класс was-validated, его нужно удалить, чтобы сообщения об ошибках исчезали после успешной отправки.
Прошу помощи. я с яваскриптом особо не дружу, умею только встраивать.
Заранее благодарю.
Комментарии: 11
Если форма сделана с помощью AjaxForm+FormIt, то можно так
$(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).find('.was-validated').removeClass('was-validated');
}
});
Пробывал. К сожалению не срабатывает.
Вообще код, который добавляет этот класс, выглядет так:
(function () {
'use strict'
// Получите все формы, к которым мы хотим применить пользовательские стили проверки Bootstrap
var forms = document.querySelectorAll('.needs-validation')
// Зацикливайтесь на них и предотвращайте отправку
Array.prototype.slice.call(forms)
.forEach(function (form) {
form.addEventListener('submit', function (event) {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
})()
Может на его основе как то изменить функцию?
Пробуйте так
(function () {
'use strict'
// Получите все формы, к которым мы хотим применить пользовательские стили проверки Bootstrap
var forms = document.querySelectorAll('.needs-validation')
// Зацикливайтесь на них и предотвращайте отправку
Array.prototype.slice.call(forms)
.forEach(function (form) {
form.addEventListener('submit', function (event) {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
form.classList.add('was-validated')
}
else{
form.classList.remove('was-validated')
}
}, false)
})
})()
Но логичнее убирать класс после успешной отправки, наверное, а присланный код форму не отправляет. Если форма сделана с помощью AjaxForm+FormIt, то можно так
$(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).find('.was-validated').removeClass('was-validated');
}
});
Должно работать. Единственное что стоит проверить, а метод find у jquery не по детям ищет? Если по детям, то он не может найти класс was-validated, потому что он у формы.
По детям))) А класс у формы, тогда так можно попробовать
$(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).removeClass('was-validated');
}
});
Артур спасибо большое! Работает. И вообще, всем спасибо! Народ, вы меня простите, зануду, я бы хотел еще спросить: не могли бы вы подсказать какой-нибудь курс или книгу по Javascript, ну так чтобы реально «вставило»?!
Я не посоветую, не помню чтобы я что-то системно читал или смотрел по JS. Я гуглил решение конкретных задач и постепенно освоился, хотя конечно мне есть куда расти.
Понял. Хорошо. Ну тогда, удачи! Расти. Еще раз спасибо
Спасибо вам
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.