web-dev-qa-db-fra.com

obtenir la valeur d'une case à cocher amorcée vérifiée

J'ai ce formulaire HTML:

<div class="animated-switch">
  <input id="switch-success" name="switch-success" checked="" type="checkbox">
  <label for="switch-success" class="label-success"></label>
</div>  

Comment puis-je savoir si l'entrée est cochée ou non?

J'ai essayé comme ça mais rien n'a alerté:

$(document).on('click','.animated-switch',function(e){
    alert($('#switch-success:checked').val() );
});

Voici un fichier JSFIDDLE afin de voir mon exemple clair: https://jsfiddle.net/s2f9q3fv/

4
Brave Type

Votre code fonctionne bien dans l'extrait. Vous avez oublié d'ajouter de la valeur à votre case à cocher, mais même sans cette case, vous devriez pouvoir voir le message d'alerte avec une valeur indéfinie (voir ci-dessous la valeur 'test' a été ajoutée dans l'extrait de code). 

$(document).on('click','#switch-success:checked',function(e){
    alert($('#switch-success:checked').val() );
});
.animated-switch > input[type="checkbox"] {
  display: none; }

.animated-switch > label {
  cursor: pointer;
  height: 0px;
  position: relative;
  width: 40px; }

.animated-switch > label::before {
  background: black;
  box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5);
  border-radius: 8px;
  content: '';
  height: 16px;
  margin-top: -8px;
  position: absolute;
  opacity: 0.3;
  transition: all 0.4s ease-in-out;
  width: 40px; }

.animated-switch > label::after {
  background: white;
  border-radius: 16px;
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
  content: '';
  height: 24px;
  left: -4px;
  margin-top: -8px;
  position: absolute;
  top: -4px;
  transition: all 0.3s ease-in-out;
  width: 24px; }

.animated-switch > input[type="checkbox"]:checked + label::before {
  background: inherit;
  opacity: 0.5; }

.animated-switch > input[type="checkbox"]:checked + label::after {
  background: inherit;
  left: 20px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<div class="animated-switch">
  <input id="switch-success" name="switch-success" checked="" value="test" type="checkbox">
  <label for="switch-success" class="label-success"></label>
</div>

UPDATE: Vous devez lier l'événement click sur la case à cocher elle-même, pas le parent. Réessayez la capture avec l'animation sophistiquée. Si vous souhaitez que l'alerte soit toujours exécutée, vous devez supprimer l'attribut :checked dans le sélecteur.

2
Kristijan Iliev

Cela se produit si la case à cocher est cochée.

       $('#' + id).is(":checked")
4
Neeraj Kumar

Essaye ça 

$(".animated-switch").change(function () {
    alert($('#switch-success:checked').val() );
    });
0
badrb