2016-05-20 11 views
0

Versucht Spalten nach Datum zu sortieren. Diese Spalten sind im MM/TT/YY-Format, also muss ich sie in 20YY-MM-DD ändern. Aus den Dokumenten, die ich gelesen habe, sollte dies gemacht werden, aber es ist nicht.Tablesorter - Sortierdatum in Eingabefeld

Irgendwelche Vorschläge würden geschätzt!

 
    $.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

Willkommen bei Stack Overflow. Ich empfehle das Hinzufügen der primären Sprache Tag - ist es [Tag: Javascript]? Und vielleicht auch das primäre JavaScript-Paket-Tag - ist es [tag: jquery]? –

+0

Ich merke, dass "Format: Funktion (s, Tabelle)" sollte Format sein: Funktion (s, Tabelle, Zelle). Entschuldigung für den Tippfehler. –

+0

Bearbeiten Sie Ihre Frage, um den Tippfehler zu beheben - und fügen Sie die Tags hinzu. –

Antwort

0

Es sieht aus wie die format Funktion der cell Parameter fehlt:

$.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" 
}); 

Vergewissern Sie sich auch in der headers Option zu diesem Parser Punkt:

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

Der Parser wasn‘ t getestet, um sicherzustellen, dass es funktioniert. Bitte stellen Sie etwas HTML zur Verfügung oder richten Sie ein JSFiddle ein, wenn es immer noch nicht funktioniert.