jQuery case à cocher modifier et cliquez sur l'événement

JS:

$(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?");
    }
  });
});

HTML:

<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"/>

Ici .change() les mises à jour de la zone de texte valeur de la case d'état. J'utilise .click() pour confirmer l'action sur les décocher. Si l'utilisateur sélectionne l'annuler, la coche est restauré, mais .change() feux de avant la confirmation.

Cela laisse les choses dans un état incohérent et de la zone de texte dit false lorsque la case est cochée.

Comment puis-je faire face à l'annulation et de garder la zone de texte valeur compatible avec la vérification de l'état?

  • Il travaille dans FF et chrome et a expliqué comportement dans IE 8. Il peut donc être important de noter que les navigateurs vous en avez besoin pour le travail, et quels sont ceux que vous voyez l'erreur.
  • C'est pas le meilleur, mais je crois que c'est de travailler pour moi ici: http://jsfiddle.net/Skooljester/2Xxcn/.