2010-05-15 21 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]')