$(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()
在确认之前就会触发。
这将导致状态不一致,当复选框被选中时,文本框显示false。
我该如何处理取消操作并使文本框值与勾选状态保持一致?