2010-11-11 3 views
3

Comme le titre le dit, je ne peux pas obtenir .attr('checked', false) pour travailler sur IE6. Je suis en train de cloner du code HTML avant d'assigner le code HTML cloné à un élément. Je le feuillette et décoche toutes les cases de la section clonée, ce qui fonctionne bien dans tous les navigateurs sauf IE 6.`attr ('checked', false)` Ne fonctionne pas sur IE6

Voici le code:

//give each input and select a custom id 
    clone.find('input, select').each(function(i) { 

      //get the id attribute 
      var id = $(this).attr('id'); 

      //uncheck all of the tick boxes 
      $(this).attr('checked', ''); 

      //get the name attribute 
      var name = $(this).attr('name'); 

      $(this).attr('name', name+"_"+count) 
      $(this).attr('id', id+"_"+count+"_"+i) 

    }); 

    //append the newly created area to the area wrapper 
    clone.appendTo('[data-custom="area_wrapper"]'); 

est-il possible que je puisse contourner ce problème?

+0

Dans votre code, vous utilisez 'attr ('checked', '')', cela ne fonctionne-t-il pas non plus? –

Répondre

3

Essayez

.removeAttr("checked") 
+0

Essayez? N'êtes-vous pas certain que cela fonctionnera? Se pourrait-il que personne ne sache vraiment ce que 'attr()' et les méthodes associées de jQuery sont censées faire? –

+3

Désolé. Bête noire –

+0

Essayé cela, ne fonctionne pas non plus. – Odyss3us

1

Il n'y a pas d'attribut HTML 'checked = false', seulement 'checked = coché la case' pour des cases à cocher et rien pour les cases non cochées.

utilisation .removeAttr('checked');

7

La solution la plus simple est aussi une optimisation:

this.checked = false; 

En fait, vous pouvez appliquer cette optimisation à tous votre code:

 //get the id attribute 
     var id = this.id; 

     //uncheck all of the tick boxes 
     this.checked = false; 

     //get the name attribute 
     var name = this.name; 

     this.name = name+"_"+count; 
     this.id = id+"_"+count+"_"+i; 

En effet, le le code jQuery sous-jacent accède quand même à ces propriétés (attr travaille principalement directement avec les propriétés jusqu'à jQuery 1.6).

Plus d'informations à ce sujet au http://whattheheadsaid.com/2010/10/utilizing-the-awesome-power-of-jquery-to-access-properties-of-an-element.

+3

OUI OUI OUI. Écoutez ça, tout le monde. –

+0

Merci pour le conseil, gardez le à l'esprit pour les projets futurs. Je vais y aller maintenant et rendre compte. – Odyss3us

Questions connexes