Comment appeler une fonction à partir de la case onclick ou onchange

J'ai un formulaire dans lequel je veux désactiver ou masquer des deux champs de saisie en sélectionnant une case à cocher. Je peux facilement le faire quand sur le document.prêt, mais depuis que je suis en ajoutant les champs de la fonction ne prend pas effet. Comment dois-je appeler la fonction avec onClick?

Voici mon code de travail

JS:

$(function() {
  $(checkbox).click(function() {
    if ($('#checkbox').is(':checked')) {
      $('#appTimes').find('input').attr('disabled', true);
    } else {
      $('#appTimes').find('input').removeAttr('disabled');
    }
  });
});

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="appTimes" id="appTimes">
  <input name="stopTime1" type="text" id="stopTime1" />
  <input name="stopTime12" type="text" id="stopTime12" />
</div>
<input name="checkbox" type="checkbox" id="checkbox" />

Et c'est ce que je suis en train de faire:

JS:

function boxDisable(e) {
  $(this).click(function() {
    if ($(this).is(':checked')) {
      $(e).find('input').attr('disabled', true);
    } else {
      $(e).find('input').removeAttr('disabled');
    }
  });
}

HTML:

<div class="appTimes" id="appTimes">
  <input name="stopTime1" type="text" id="stopTime1" />
  <input name="stopTime12" type="text" id="stopTime12" />
</div>
<input name="checkbox" onclick="boxdisable(appTimes);" type="checkbox" id="checkbox" />

---EDIT---------------
Permettez-moi de redéfinir: Mon code est à l'aide .ajouter pour créer plusieurs instances du code ci-dessus. Puisque la quantité de append est illimité, je suis incapable de définir la case avec $('#id'), car il peut y avoir des centaines d'entre eux comme $('#id1'), $('#id2').. etc. J'ai besoin d'une fonction qui évite de mentionner l'exacte id de l'élément, est appelé onClick par le case et affectant beforehead div, qui est aussi ajouté.

  • Je suis assez confus sur ce que vous essayez de faire ici, le var appTimes n'est pas défini... peut-être vous dire onclick="boxdisable('.appTimes');"?
  • pas besoin de si/d'autre, vous utilisez prop pour définir et unset désactivé, pas attr/removeAttr, qui prend une valeur de type boolean $(e).find('input').prop('disabled', $something.is(':checked'));
InformationsquelleAutor Ra Tre | 2015-02-06