2013-04-29 36 views
0

我有一個由系統生成的大型(〜800行)表,需要將複選框添加到它們以便有人可以檢查行他們想要更多的信息。我可以添加質量複選框列,但我不會單獨值添加到這些複選框......所以我的問題:添加一個值到一個複選框,收集所有選中的值併發送它們(jQuery)

如果我有一個大表是這樣的:

<table> 
    <tr> 
     <td><input type="checkbox"></td> 
     <td>ABCDEFG</td> 
    </tr> 
    <tr> 
     <td><input type="checkbox"></td> 
     <td>HIJKLMN</td> 
    </tr> 
    ... etc... 
</table> 

有一種方法,我可以使用下一個<td>中的文本附加值複選框?所以如果有人點擊第一個複選框,它的值被設置爲'ABCDEFG'?

最有可能會點擊幾個複選框。在點擊時分配值是更好的,還是等到命中提交以循環通過分配值的複選框?

我擔心桌子太大會引起一些問題。

回答

6
$('input[type="checkbox"]').on('change', function() { 
    if (this.checked) { 
     this.value = $(this).closest('td').next('td').text(); 
    }else{ 
     this.value = ""; 
    } 
}); 
+0

太棒了 - 非常感謝! – 2013-04-29 19:36:30

0

試試這個小提琴。我認爲它會做你想要什麼:

http://jsfiddle.net/yFJsk/

$("#submit").click(function() { 
    var selected = ""; 
    $("input[type=checkbox]").each(function() { 
     if ($(this).is(":checked")) { 
      selected += $(this).parent().siblings("td").text() + ","; 
     } 
    }); 
    alert(selected); 
}); 

基本上,當按下提交按鈕我們得到的所有值和建立一個逗號分隔它們的字符串。您可以更改每個函數的if語句中的內容,以便使用所選值執行任何您想要的操作。

+0

偉大的解決方案,以及 - 非常感謝! – 2013-04-29 19:37:14

相關問題