2016-05-20 21 views
0

日付で列をソートしようとしています。これらの列はMM/DD/YY形式であるため、20YY-MM-DDに変更する必要があります。私が読んだドキュメントから、これはすべきですが、そうではありません。Tablesorter - 入力フィールド内の日付をソート

ご意見をお寄せください。

 
    $.tablesorter.addParser({ 
     id: "inputdate", 
     is: function() { 
       return false; 
     }, 
     format: function(s, table) { 
      // reformat mm/dd/yy to mm/dd/20yy 
      var d = (s == "") ? "01/01/00" : $.trim($('input', cell).val()); 
      if(d == "") { // if blank, set a default 
      d = "01/01/00"; 
      } 
     return Date.parse('20' + d.substr(6,2) + '-' + d.substr(0,2) + '-' + d.substr(3,2));  
     }, 
     type: "numeric" 
    }); 
+0

ようこそスタックオーバーフロー。プライマリ言語のタグを追加することをおすすめします - それは[tag:javascript]ですか?そしておそらくプライマリのJavaScriptパッケージタグも - それは[tag:jquery]ですか? –

+0

私は "format:function(s、table)"はformat:function(s、table、cell)でなければならないことを認識しています。入力ミスを申し訳ありません。 –

+0

あなたの質問を編集して入力ミスを修正し、タグも追加してください。 –

答えて

0

format機能がcellパラメータ欠けているように見えます:

$.tablesorter.addParser({ 
    id: "inputdate", 
    is: function() { 
    return false; 
    }, 
    format: function(s, table, cell) { 
    // reformat mm/dd/yy to mm/dd/20yy 
    var d = (s == "") ? "01/01/00" : $.trim($('input', cell).val()); 
    if(d == "") { // if blank, set a default 
     d = "01/01/00"; 
    } 
    return Date.parse('20' + d.substr(6,2) + '-' + d.substr(0,2) + '-' + d.substr(3,2));  
    }, 
    type: "numeric" 
}); 

またheadersオプションでこのパーサを指していることを確認してくださいを:

$('table').tablesorter({ 
    headers: { 
    // zero-based column index 
    0 : { sorter: 'inputdate' } 
    } 
}); 

パーサは「wasnそれが動作することを確認するためにテストされていません。まだ動作しない場合は、いくつかのHTMLを提供するか、JSFiddleを設定してください。

関連する問題