Can datatables sort a column with an input field?

前端 未结 6 1491
囚心锁ツ
囚心锁ツ 2021-01-12 17:41

I am trying to make datatables sort my columns. The first column works okay as it\'s a simple number. However the next column is an input field. When I try to make that sort

6条回答
  •  滥情空心
    2021-01-12 18:35

    jQuery.fn.dataTableExt.oSort['textbox-asc'] = function (a, b) {
        var vala = $('#' + $(a).filter('input').attr('id')).val().toLowerCase();
        var valb = $('#' + $(b).filter('input').attr('id')).val().toLowerCase();
        if (vala === '')
            return 1;
        if (valb === '')
            return -1;
        return vala < valb ? -1 : vala > valb ? 1 : 0;
    };
    
    jQuery.fn.dataTableExt.oSort['textbox-desc'] = function (a, b) {
        var vala = $('#' + $(a).filter('input').attr('id')).val().toLowerCase();
        var valb = $('#' + $(b).filter('input').attr('id')).val().toLowerCase();
        if (vala === '')
            return 1;
        if (valb === '')
            return -1;
        return vala < valb ? 1 : vala > valb ? -1 : 0;
    };
    

    then use it like this

     $(datatable).dataTable({
                        "iDisplayLength": 50,
                        "bLengthChange": false,
                        "bPaginate": false,                        
                        "columns": [
                            null, { "sType": "textbox" }
                        ],
                    });
    

提交回复
热议问题