使用Tablesorter按列中所选选项的选择进行过滤

时间:2015-12-17 16:22:22

标签: javascript jquery tablesorter

我使用Mottie的插件jQuery Tablesorter已经很长时间了,它非常有用,但今天我有一个问题。我想通过其中一列中的选择的选定选项来过滤我的表。排序有效但不是过滤器。

这是代码HTML:



<table id="tableau-programmes" cellspacing="0" cellpadding="0" class="donnees tablesorter">
	<thead>
		<tr class="bg-vert-2">
			<th>Programme</th><th>No</th><th>Département</th><th>CP</th><th>Ville</th><th>Agence</th><th>Association</th>
		</tr>
	</thead>
	<tbody>
		<tr id="18">
			<td><a href="programme-neuf-18.php">Bornéo</a></td>
			<td>44</td><td>Loire-Atlantique</td>
			<td>44100</td><td>Nantes</td>
			<td>
				<select class="centre-profit">
					<option value="0">...</option>
					<option value="2" selected="selected" class="bg-vert-4">Agence de Saint-Nazaire</option>
					<option value="1">Agence de Nantes</option>
				</select>
			</td>
			<td><span class="c-vert">Oui</span></td>
		</tr>
		<tr id="17" class="bg-vert-4">
			<td><a href="programme-neuf-17.php">Erdréa</a></td>
			<td>44</td>
			<td>Loire-Atlantique</td>
			<td>44300</td>
			<td>Nantes</td>
			<td>
				<select class="centre-profit">
					<option value="0">...</option>
					<option value="2" selected="selected" class="bg-vert-4">Agence de Saint-Nazaire</option>
					<option value="1">Agence de Nantes</option></select></td>
			<td><span class="c-vert">Oui</span></td>
		</tr>
		...
	</tbody>
</table>   
&#13;
&#13;
&#13;

这是代码js:

&#13;
&#13;
$(function(){
	var nom_prog_preselect = (id_prog_preselect > 0) ? $("tr#"+id_prog_preselect).children('td:first').text() : '';
	$.tablesorter.addParser({ 
			id: 'txt_select', 
			is: function(s) { 
					return false;
			}, 
			format: function(s, table, cell) {
				return $(cell).find('select').children('option:selected').text() || s;
			},
			parsed: true,
			type: 'text' 
	});
	$(".tablesorter").tablesorter({
		widgets:['zebra','stickyHeaders','filter']
		,headers: {
			5: { sorter:"txt_select", filter:false }
		}
		,initialized: function (table, filter, apply) {
			$.tablesorter.setFilters( table, [nom_prog_preselect,'','','','','',''], true);
		}
	});
});
&#13;
&#13;
&#13;

有人可以帮我吗?感谢。

1 个答案:

答案 0 :(得分:0)

不要创建自定义“txt_select”解析器,而是加载parser-input-select.js file提供的fork of tablesorter

该文件有两个选择解析器:

  • 'select' - 存储所选值
  • 'select-text' - 存储所选文字

以及选择值更改以更新内部缓存时所需的一些额外代码。