Я хочу временно деактивировать форму и отобразить окно подтверждения независимо от того, хотят ли данные быть отправлены или нет, но у меня возникают проблемы, когда я хочу снова активировать форму.
Код для деактивации формы:
var statusForm = true;
$("form.form-update").submit((e)=>{
e.preventDefault();
$("form.form-update input").each((key, element) => {
if (element.value == "") {
statusForm = false;
}
});
if (statusForm == false) {
alert("Data is invalid!");
}
else{
// Show the popup
$(".confirm-notification").show();
}
})
Код при нажатии кнопки "да":
// When "yes" button click
$(".confirm-notification-yes").click(()=>{
// Code to remove preventDefault() on $("form.form-update")
})
Как удалить preventDefault() в $("form.form-update")?
[Задача решена] Проблема была решена совмещением методов unbind() и submit(). Итак, код стал:
$(".confirm-notification-yes").click(()=>{
$("form.form-update").unbind('submit');
$("form.form-update").submit();
})
потому что я хочу отправить форму, когда была нажата кнопка «да» при подтверждении. Я запутался, чтобы отправить эту форму.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


сделай так
// When "yes" button click
$(".confirm-notification-yes").click(()=>{
// Code to remove preventDefault() on $("form.form-update")
$("form.form-update").unbind('submit').click();
})
При ответе «Да» отправьте форму:
$(".confirm-notification-yes").click(()=>{
$("form.form-update").submit();
})
Теперь давайте исправим первую часть. Я полагаю, что подчинение запускается через кнопку. Вы помещаете свой код в эту кнопку, а не в событие отправки.
$("btn-that-initiates-submission").click(() => {
e.preventDefault();
let missingValue = false;
$("form.form-update input").each((key, element) => {
if (element.value === "") {
missingValue = true;
}
});
if (missingValue) {
alert("There's missing data in the form.");
}
else {
$("confirm-notification").show();
}
});
спасибо за совет брат. это сработало, когда я объединил метод unbind() с методом submit().
Я немного смущен. Просто удалить строку кода? Вы можете сохранить preventDefault, а затем скрыть форму (отобразить: нет), а затем показать окно подтверждения.