2010-05-15 4 views
1

J'ai un peu de problème avec ce code.en boucle à travers une liste de cases à cocher et d'enregistrer les valeurs, ne fonctionne pas correctement

Le programme me donne une liste de cases à cocher mais un ID utilisateur. alors vous pouvez changer sa sélection et appuyer sur le bouton de sauvegarde (id = "btnSaveUserIntersts") et j'essaie d'enregistrer dans la boîte de texte cachée toutes les valeurs des cases à cocher qui ont été choisies. Le problème est que je reçois tout le temps les mêmes sélections qui sont venues de la base de données et n'obtenant pas la nouvelle sélection faite par l'utilisateur. Est-ce que quelqu'un peut me dire ce que je fais mal ici?

$(document).ready(
function() 
{ 
    $('#btnSaveUserIntersts').bind(
     'click', 
     function() 
     { 
      var strCheckBoxChecked = new String(); 
      $('input[type=checkbox][checked]').each(
       function() 
       { 
        strCheckBoxChecked += $(this).val(); 
        strCheckBoxChecked += ','; 
       } 
      ); 
      $('#hidUserInterests').val(strCheckBoxChecked); 
     } 
    ); 
} 

);

10x

Répondre

3

Essayez d'utiliser:

$('input:checkbox:checked').each(
     function() 
     { 
      strCheckBoxChecked += $(this).val(); 
      strCheckBoxChecked += ','; 
     } 
    ); 

Comme le sélecteur au lieu de ce que vous utilisez actuellement.

+0

10x, stupide moi ... lol :-) – Erez

1
$('input[type="checkbox"]:checked') 
1

Utilisez .map, il est beaucoup plus jolie:

var strCheckBoxChecked = $('input:checkbox:checked').map(function() 
    return this.value; 
}).get().join(","); 

et le sélecteur que vous utilisez est près, $('input[type=checkbox][checked=checked]')

Questions connexes