Jquery:更改值后自动按输入值对表进行排序
如何根据特定列中输入的值对表进行排序。我希望在更改指定列中任何输入的值时立即执行此操作。我试过使用tablesort插件,但就是无法使其正常工作Jquery:更改值后自动按输入值对表进行排序,jquery,user-input,tablesorter,Jquery,User Input,Tablesorter,如何根据特定列中输入的值对表进行排序。我希望在更改指定列中任何输入的值时立即执行此操作。我试过使用tablesort插件,但就是无法使其正常工作 <table id="myDummyTable" class="tablesorter"><thead> <tr> <th>...</th> <th id="orderthis">something</th> <th id="orderth
<table id="myDummyTable" class="tablesorter"><thead>
<tr>
<th>...</th>
<th id="orderthis">something</th>
<th id="orderthis">order by value automatically</th>
<th id="orderthis2">...</th>
</tr>
</thead>
<tbody>
<tr>
<td>td1-1</td><td><input type="text" class="stockprodvariantorder" value="abc"/></td>
<td><input type="text" name="order1" class="order" value="10"/></td>
<td>td1-3</td>
</tr>
<tr>
<td>td2-1</td><td><input type="text" class="stockprodvariantorder" value="def"/></td>
<td><input type="text" name="order2" class="order" value="20"/></td>
<td>td4-3</td>
</tr>
<tr>
<td>td6-1</td><td><input type="text" class="stockprodvariantorder" value="ghi"/></td>
<td><input type="text" name="order3" class="order" value="30"/></td>
<td>td3-3</td>
</tr>
<tr>
<td>td4-1</td><td><input type="text" class="someOther" value="jkl"/></td>
<td><input type="text" name="order4" class="order" value="40"/></td>
<td>td4-3</td>
</tr>
</tbody>
...
某物
自动按值排序
...
td1-1
td1-3
td2-1
td4-3
td6-1
td3-3
td4-1
td4-3
您确定您真的希望应用程序以这种方式运行吗?实际上,您强制用户不要输入错误,因为如果她输入了,表行可能在某个地方。如果您的表格大于视口,如果她继续键入,它也会在窗口周围滚动。至少在焦点变化(即模糊)时只考虑重新排序。
回答您的问题:您需要编写一个自定义文本提取器函数,如下所示:
var myTextExtraction = function(node) {
// return value of input field (must be a direct child of <td>)
return node.childNodes[0].value;
}
$(document).ready(function() {
// init table sorter
$("#myDummyTable").tableSorter({textExtraction: myTextExtraction});
// listen to keyup events on each input and resort each time
$("#myDummyTable input").keyup(function() {
// sort by 2nd column
$("#myDummyTable").trigger("sorton", [[1,0]]);
});
});
var mytextextextraction=函数(节点){
//输入字段的返回值(必须是的直接子项)
返回node.childNodes[0]。值;
}
$(文档).ready(函数(){
//初始化表格分拣机
$(“#myDummyTable”).tableSorter({textExtraction:myTextExtraction});
//听每个输入上的键控事件,并每次使用
$(“#myDummyTable input”).keyup(函数(){
//按第二列排序
$(“#myDummyTable”).trigger(“sorton”[1,0]];
});
});
我还没有测试上述代码,如果您有问题,请反馈。但正如尼特什·维尔马暗示的那样,包括更多关于什么不起作用的细节
文档链接: