2017-10-15 11 views
1

J'essaie d'obtenir le texte de case à cocher sélectionné en cas de changement.Pourquoi ma case à cocher sur le changement ne fonctionne pas sur le fichier js, mais fonctionne sur la console?

Voici mon code ASPX

<ul class="multiselect-container dropdown-menu"> 
    <li class=""> 
     <a tabindex="0"> 
      <label class="checkbox"> 
       <input type="checkbox" value="1001"> 1001</label> 
     </a> 
    </li> 
    <li class=""> 
     <a tabindex="0"> 
      <label class="checkbox"> 
       <input type="checkbox" value="1111"> 1111</label> 
     </a> 
    </li> 
    <li class=""> 
     <a tabindex="0"> 
      <label class="checkbox"> 
       <input type="checkbox" value="2222"> 2222</label> 
     </a> 
    </li> 
    <li class=""> 
     <a tabindex="0"> 
      <label class="checkbox"> 
       <input type="checkbox" value="3333"> 3333</label> 
     </a> 
    </li> 
</ul> 

Voici mon code Jquery ce qui a essayé

$('.multiselect-container :checkbox').change(function() { 
    $('.multiselect-container input:checkbox').each(function() { 
     var sThisVal = (this.checked ? $(this).val() : ""); 
     alert(sThisVal); 
    }); 
    alert('working'); 
}); 

Remarque

Quand je lance le fichier js, il ne montrez l'alerte. mais quand j'ai essayé sur la console. il travaille ...

Can you tell me answer with reason why it is not working with js file? 
+0

probablement vous l'appelez avant chargement de la page code complet –

+0

wrap dans la console de contrôle de la fonction jquery prêt pour toute erreur –

+0

@FastSnail Je cours déjà à l'intérieur du fonction prête. Mes autres fonctions de jquery sont en cours d'exécution sauf celle-ci –

Répondre

1

Vous devez exécuter le code js après la page est chargée. Il y a plusieurs façons:

  1. Mettre la balise de script à la fin du corps:
  2. Enveloppez votre script avec une fonction d'un appel après la page est chargée. Cela peut être fait soit en ajoutant l'attribut onload sur le corps (plus à w3) ou en ajoutant une balise de script à la fin du corps qui n'appelle que la fonction.
  3. Vous pouvez utiliser le jQuery ready ou on load (plus à jQuery doc)
+0

Comment faire pour ne sélectionner que la case à cocher si la condition 'if ($ (this.checked) .is (': checked')) {}' comme ceci? –

+0

'$ (this) .is (": vérifié ")' – MaanooAk