2013-08-04 63 views
0

如何根據特定列中INPUT的值對錶進行排序。我希望一旦改變了spcified列中任何輸入的值,就會發生這種情況。我已經嘗試過使用tablesort插件,但無法使其工作。Jquery:在更改值後自動按輸入值對錶進行排序

<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> 
+0

任何你有它累了嗎? –

回答

0

你確定你確實希望你的應用程序以這種方式表現嗎?你本質上是強迫用戶不要犯錯誤,因爲如果她的表格行可能在某處。如果您的表格大於視口,則如果她繼續打字,它也會在窗口周圍滾動。至少考慮焦點改變時(即模糊)重新排序。

要回答你的問題:你需要寫一個自定義的文本提取功能,像下面這樣:

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]]); 
    }); 
}); 

我沒有上面的代碼,報告回來,如果你有問題的測試。但是像Nitesh Verma暗示的那樣,包括更多關於什麼不起作用的細節。

文檔鏈接:

相關問題