2009-11-02 68 views
1

我想创建一个可以使用JQuery tablesorter进行排序的表,并且还为单个行复选框选择了all/none复选框切换。 Tablesorter禁用切换。JQuery tablesorter与checkall冲突

在一篇类似的文章中,我读到“tablesorter正在销毁/重新创建原始的Dom元素” - 这表示我仍不确定如何解决它。

我的代码是:

<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <link rel='stylesheet' href='css/simple.css' type='text/css'/> 
    <script type='text/javascript' src='js/jquery.js'></script> 
    <script type='text/javascript' src='js/tablesorter.js'></script> 
    <script type='text/javascript'> 
     function checkAll(checkname, exby) { 
     for (i = 0; i < checkname.length; i++) 
     checkname[i].checked = exby.checked? true:false 
     } 
    </script> 
    <script type="text/javascript">$(document).ready(function() {$("#dataGrid").tablesorter({ widgets: ['zebra'] });});</script> 
    <title>test</title> 
    </head> 

<body> 
<form id='dataGridForm' name='mylist' action='test.php' method='post'> 
<table id='dataGrid' class='tablesorter'> 
<thead> 
<tr> 
<th><input type="checkbox" name="all" onClick="checkAll(document.getElementsByName('checkGroup[]'),this)"></th> 
<th>col1</th> 
<th>col2</th> 
</tr> 
</thead> 
<tbody> 
<tr><td><input type="checkbox" name="checkGroup[]" value="1"></td><td>1</td><td>4</td></tr> 
<tr><td><input type="checkbox" name="checkGroup[]" value="2"></td><td>2</td><td>3</td></tr> 
<tr><td><input type="checkbox" name="checkGroup[]" value="3"></td><td>3</td><td>2</td></tr> 
<tr><td><input type="checkbox" name="checkGroup[]" value="4"></td><td>4</td><td>1</td></tr> 
</tbody> 
</table> 
<div> 
<input id='submit' type='submit' name='submit' value='submit'/></div> 
</form> 

    </body> 
</html> 

任何想法,将不胜感激。

回答

0

它看起来像你接通他们,如果断和断如果....

使用本

function toggleAll(selector){ 
    $(selector).each(function(){ 
     this.checked = !this.checked; 
    }) 
} 

然后使用jQuery选择它会给你所有必要的复选框。

onclick="toggleAll('input[type:checkbox]')" 

(未经测试)

0

我不得不做一个解决办法是要求拉checkall复选框出的tablesorter表的 - 那么它的工作。但是我仍然没有办法在桌子上工作。

1

添加标题选项如下图所示:

$("#dataGrid").tablesorter({ widgets: ['zebra'], headers:{0:{sorter:false}} });