jQuery复选框更改和单击事件

$(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。

如何处理取消并保持文本框值与检查状态一致?

小小飞云2020/03/12 15:05:06

I am not sure why everyone is making this so complicated. This is all I did.

if(!$(this).is(":checked")){ console.log("on"); }
小胖神奇2020/03/12 15:05:06
 $("#person_IsCurrentAddressSame").change(function ()
    {
        debugger
        if ($("#person_IsCurrentAddressSame").checked) {
            debugger

        }
        else {

        }

    })
阳光达蒙达蒙2020/03/12 15:05:06

摆脱更改事件,而在单击事件中更改文本框的值。而不是返回确认结果,而是将其捕获到var中。如果为真,则更改值。然后返回var。