215 votes

Case à cocher Javascript onChange

J'ai une case à cocher dans un formulaire et j'aimerais qu'elle fonctionne selon le scénario suivant :

  • si quelqu'un le vérifie, la valeur d'un champ de texte ( totalCost ) doit être fixé à 10 .
  • puis, si je reviens en arrière et que je décoche, une fonction calculate() fixe la valeur de totalCost en fonction d'autres paramètres du formulaire.

J'ai donc besoin de la partie où, lorsque je coche la case, je fais une chose et lorsque je la décoche, j'en fais une autre.

254voto

Vic Points 3069

Javascript pur :

const checkbox = document.getElementById('myCheckbox')

checkbox.addEventListener('change', (event) => {
  if (event.currentTarget.checked) {
    alert('checked');
  } else {
    alert('not checked');
  }
})

My Checkbox: <input id="myCheckbox" type="checkbox" />

197voto

Senad Meškin Points 7248
function calc()
{
  if (document.getElementById('xxx').checked) 
  {
      document.getElementById('totalCost').value = 10;
  } else {
      calculate();
  }
}

HTML

<input type="checkbox" id="xxx" name="xxx" onclick="calc();"/>

36voto

Liangliang Zheng Points 1056

Si vous utilisez jQuery alors je peux vous suggérer ce qui suit : NOTE : J'ai fait quelques suppositions ici

$('#my_checkbox').click(function(){
    if($(this).is(':checked')){
        $('input[name="totalCost"]').val(10);
    } else {
        calculate();
    }
});

19voto

SergeS Points 4917

Utilisez un événement onclick, car chaque clic sur une case à cocher la modifie réellement.

18voto

Ali Kleit Points 1657

HTML :

<input type="checkbox" onchange="handleChange(event)">

JS :

function handleChange(e) {
     const {checked} = e.target;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X