У меня есть флажок, и требование состоит в том, что, когда пользователь щелкает по нему, вместо немедленного изменения его состояния, должно появиться модальное окно с вопросом «да / нет».В зависимости от их ответа, флажок должен или становиться отмеченным, или оставаться не отмеченным.
Я думал, что это требование должно быть обработано с использованием Event.preventDefault()
, но когда я попытался это сделать, я обнаружил, что при выходе из обработчика события,флажок возвращается в исходное состояние, независимо от моих программных попыток установить состояние в обработчике.
$(function() {
$(":checkbox").click(function(e) {
e.preventDefault();
$(this).prop("checked", confirm("Confirm to check the checkbox"));
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<label for="checkbox">Click me</label>
<input type="checkbox" id="checkbox">
</form>
Так как я могу реализовать требуемое поведение?