2011-03-15 119 views
0

編輯///////顯示多個複選框值(從模式窗口),通過jQuery

除了下面的有用的建議,事實證明,另一個bug是我列入「[ ]「我的複選框名稱屬性中的括號。

<input type="checkbox" name="neighborhood_id[]"/> 

這是搞砸了我的jquery選擇器,顯然。

//////編輯完

我已經通過幾個相關的線程去尋找一個答案,並拿出空。我非常樂觀,但它非常簡單,應該有一分鐘纔能有人回答。

我想從多個選定的複選框(全部具有相同的名稱屬性)中獲取值並將其顯示在文本輸入中。不知道這是否將一隻猴子扳手扔進去,但複選框最初隱藏在模式窗口中。我的嘗試正在工作。我還添加了.get()和toArray()到map函數,但沒有成功。

$('[name=neighborhood_id[]]').change(function(){ 
    $('#area').val(function(){ 
     return $('[name=neighborhood_id[]]:checked').map(
      function(){return $(this).val()}); 
      }); 
    }); 

說我有問題是,文本輸入默認到以下幾點: 的翻譯:當我做檢查checboxes它沒有更新。

我假設這可能與

感謝返回從各個/映射函數的值作爲數組對象

回答

0

你肯定是在正確的軌道上,只是需要一些改動:

$('input[name=neighborhood_id]').change(function() { 
    $('#area').val(
     $('[name=neighborhood_id]:checked').map(function() { 
      return $(this).val(); 
     }).get().join(',') 
); 

});

我認爲你的主要問題是你發送匿名函數來$('#area').val

工作版本:http://jsfiddle.net/uZcaT/

+0

你真棒ryley。非常感謝。我想我有些困惑,因爲我無法在那裏發送匿名函數。 val可以採用一個函數作爲參數,除了一個字符串 – Ben 2011-03-16 00:13:28

+0

我相信你可以用anon函數完成它,如果你返回map(...).get()。join(',') '而不是'map(...)' – Ryley 2011-03-16 15:21:23

0

試試這個:

var sOutput; 
$('input[name=neighborhood_id]').each(function() { 
    sOutput+=$(this).children('option:selected').val()+'\r\n'; 
}); 
$('#area').val(sOutput); 

如果沒有工作,你可以在JSfiddle.net上發佈你的HTML代碼嗎?