$(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"/>
Ở đây .change()
cập nhật giá trị hộp văn bản với trạng thái hộp kiểm. Tôi sử dụng .click()
để xác nhận hành động trên bỏ chọn. Nếu người dùng chọn hủy, dấu kiểm được khôi phục nhưng .change()
kích hoạt trước khi xác nhận.
Điều này khiến mọi thứ ở trạng thái không nhất quán và hộp văn bản nói sai khi hộp kiểm được chọn.
Làm cách nào tôi có thể xử lý việc hủy và giữ giá trị hộp văn bản phù hợp với trạng thái kiểm tra?