Я пытаюсь выполнить следующее:
Когда пользователь щелкает вне элемента div («productListMatch»), содержащего флажки, если установлен какой-либо из флажков, появляется предупреждение о подтверждении, позволяющее пользователюзнаю, что они не сохранили там флажок выбора.
Короче говоря, я проверяю, сохранен ли отмеченный элемент или нет.Если это так, уведомите пользователя, давая ему возможность сохранить или нет.
Вот что я сделал:
function formCheckboxConfirm() {
$('html').click(function() {
var elem = document.getElementById('frm-list-product').elements;
for (i = 0; i < elem.length; i++) {
if(elem[i].type == "checkbox" && elem[i].checked) {
confirm("You have made changes! Do you want to proceed without saving your changes?");
break;
}
}
});
$(".productListMatch").click(function(e) {
e.stopPropagation(); // I thought this would stop all link clicks, but it's not working as I expected.
});
}
Хотя это работает в целом, это не работаетсо ссылками.После того, как они нажали, они продолжают работать, и я все еще получаю предупреждение о подтверждении.
Примечание. На веб-странице за пределами div есть несколько навигационных ссылок.Сам div "productListMatch" является частью содержимого на вкладке jquery (2-е из двух), поэтому нужно щелкнуть эту вкладку, чтобы увидеть div "productListMatch".
Что бы янапример:
- Если нажата какая-либо ссылка - кроме флажков (и кнопки Сохранить) -
- Прекратить выполнение ссылки
- Выполнитьпроверьте, установлены ли флажки или нет
- Если флажок установлен, предоставьте уведомление о подтверждении
- Если пользователь нажимает «ОК», веб-страница продолжает ссылку, которая была первоначально нажата
- Еслипользователь нажимает кнопку «ОТМЕНА», веб-страница не продолжает ссылку, по которой изначально щелкали
- Если флажок не установлен, предупреждение о подтверждении отсутствует, и веб-страница продолжает ссылку, которая была первоначально проверена
Я попробовал несколько сценариев, и хотя я могу заставить ссылки остановиться (я использовал предотвращение дефолта), я не уверенкак заставить их начать заново.Возможно, я все делаю неправильно.
Буду признателен за помощь.
Спасибо.
Стивен