2010-05-15 22 views
1

我对这段代码有点问题。循环通过复选框列表并保存值,但不能正常工作

程序给我一个复选框列表,但是一个用户ID。那么你的用户可以改变他的选择,并推动保存按钮(id =“btnSaveUserIntersts”),我试图保存在隐藏的文本框中所选择的复选框的所有值。

问题是我所有的时间都来自数据库的相同选择,而没有得到用户所做的新选择。

任何人都可以告诉我我在这里做错了什么?

$(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

回答

3

尝试使用:

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

由于选择的,而不是你目前使用的是什么。

+0

10倍,愚蠢的我...哈哈:-) – Erez 2010-05-15 13:21:46

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

使用.map,它远远漂亮:

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

而你正在使用的选择是接近$('input[type=checkbox][checked=checked]')