Приходит клиент с детским логопедическим садом "ДАРвиль". Говорит: "Помогите, после отправки формы кнопка исчезает/очищается. Люди не понимают, отправилась заявка или нет".
До: $(':input','#formMainn, #formMaintel') .not(':reset, :hidden') .val('') // Очищает ВСЁ, включая кнопки! После: $(':input','#formMainn, #formMaintel') .not(':reset, :hidden, :button, :submit') // Кнопки в безопасности ✅ .val('') .removeAttr('checked') .removeAttr('selected');
Исправил очистку полей — теперь .val('') не трогает кнопки с type="submit". Текст "Отправить заявку" остаётся на месте.
На странице было две кнопки с id="submitBtnModal" — одна внутри формы, другая снаружи. Браузер офигевал, скрипты сходили с ума.
Добавил нормальный обработчик на change, а не кривой onclick в HTML. Теперь кнопка активируется только при согласии.
❌ Так было (кнопка очищалась):
function AjaxFormRequest(result_id, formMainn, url) {
jQuery.ajax({
// ... ajax настройки
success: function(response) {
document.getElementById(result_id).innerHTML = response;
// УБИЙЦА ↓
$(':input','#formMainn, #formMaintel')
.not(':reset, :hidden')
.val('') // Стирает текст на кнопке!
.removeAttr('checked')
.removeAttr('selected');
}
});
}
✅ Так стало (кнопка жива):
function AjaxFormRequest(result_id, formMainn, url) {
jQuery.ajax({
// ... ajax настройки
success: function(response) {
document.getElementById(result_id).innerHTML = response;
// СПАСИТЕЛЬ ↓
$(':input','#formMainn, #formMaintel')
.not(':reset, :hidden, :button, :submit') // Кнопки в игноре!
.val('')
.removeAttr('checked')
.removeAttr('selected');
// Чекбокс не сбрасываем, чтобы кнопка осталась активной
// jQuery('#agreeCheckboxModal').prop('checked', false); // закомментил
}
});
}