2016-12-15 17 views
-1

Ich kann die Checkbox nicht aktivieren, wenn das Kontrollkästchen deaktiviert ist.Aktivieren Sie das Kontrollkästchen, um das Kontrollkästchen zu deaktivieren.

$("#search_list").find('.mselect input:checked').each(function(index, ele) { 
      var prodId = $(this).val(); 
      console.log($(this)); 
      //if($(this).is(':checked')){ 
      //if($(this).length) { 
       $(productList).each(function(key, value) { 
        console.log("ohh"+value); 
        if(prodId == value){ 
         $(this).prop('checked', false); 
         console.log($(this)); 
         console.log("unchedk"+value); 
        } 
       }); 
      //} 
     }); 

Was ist mein Fehler?

+0

Sie den HTML-Code für die Kontrollen umfassen sollten Sie ändern möchten, sowie alle Fehlermeldungen, die Sie im Browser-Konsole sehen können. – Tony

Antwort

0

Der Kontext $(this) bezieht sich auf das aktuelle Element/die Eigenschaft productList. Vergeben $(this) von Kontrollkästchen zu einer Variablen wie (kommentierten Code entfernt)

$("#search_list").find('.mselect input:checked').each(function(index, ele) { 

    var $checkbox = $(this), // now use $checkbox instead of $(this) in the next loop 
          // (the dollar sign is to indicate that the variable is alreay a jQuery object). 
     prodId = $(this).val(); 

    $(productList).each(function(key, value) { 

     if (prodId == value) { 
      $checkbox.prop('checked', false); 
     } 

    }); 

}); 
+0

@Andreas, du hast absolut recht. Ich nehme an, die Konvention, die ich gelernt habe, hat einen Fehler. –

+0

Ja '$ this' bezieht sich nicht auf das Kontrollkästchen. es bezieht sich auf Array von Produktliste. –

+0

Ja, ich verstehe meinen Fehler. Vielen Dank. –

Verwandte Themen