$(document).ready(function() {
//set initial state.
$('#textbox1').val($(this).is(':checked'));
$('#checkbox1').change(function() {
$('#textbox1').val($(this).is(':checked'));
});
$('#checkbox1').click(function() {
if (!$(this).is(':checked')) {
return confirm("Are you sure?");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="checkbox1"/><br />
<input type="text" id="textbox1"/>
Тут .change()
оновлено значення текстового поля зі статусом прапорця. Я використовую, .click()
щоб підтвердити дію, щоб зняти прапорець. Якщо користувач вибере скасувати, галочка буде відновлена, але.change()
знімається до підтвердження.
Це залишає речі в непослідовному стані, і текстове поле говорить помилковим, коли прапорець встановлений.
Як я можу впоратися зі скасуванням та підтримувати значення текстового поля відповідно до стану перевірки?