Tablesorter - 在输入字段内对日期排序

时间:2016-05-20 14:53:42

标签: jquery date tablesorter

尝试按日期对列进行排序。这些列是MM / DD / YY格式,因此我必须将其更改为20YY-MM-DD。从我读过的文档来看,应该这样做,但事实并非如此。

任何建议都将不胜感激!

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

1 个答案:

答案 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' }
  }
});

解析器未经过测试以确保其正常工作。如果它仍然不起作用,请提供一些HTML或设置JSFiddle。