Ich verwende die jQuery Tablesorter und ein Problem mit der Reihenfolge, in der Parser gegen Tabellenspalten angewendet werden. Ich füge einen kundenspezifischen Parser hinzu, um Währung des Formulars $ -3.33 zu behandeln.Benutzerdefinierte Parser für JQuery Tablesorter
$.tablesorter.addParser({
id: "fancyCurrency",
is: function(s) {
return /^\$[\-]?[0-9,\.]*$/.test(s);
},
format: function(s) {
s = s.replace(/[$,]/g,'');
return $.tablesorter.formatFloat(s);
},
type: "numeric"
});
Das Problem scheint zu sein, dass der integrierte Währungsparser Vorrang vor meinem benutzerdefinierten Parser hat. Ich könnte den Parser in den eigentlichen Tabellensortierer-Code setzen (vor dem Währungsparser) und es funktioniert ordnungsgemäß, aber das ist nicht sehr wartbar. Ich kann den Sortierer nicht manuell mit etwas wie dem folgenden angeben:
headers: {
3: { sorter: "fancyNumber" },
11: { sorter: "fancyCurrency" }
}
da die Tabellenspalten dynamisch aus Benutzereingaben generiert werden. Ich denke, eine Option wäre, den Sortierer als CSS-Klasse zu spezifizieren und einige JQuery zu verwenden, um explizit einen Sortierer wie this question suggeriert, aber ich würde lieber mit dynamischen Erkennung wenn möglich bleiben.
Schlägt es fehl, wenn es nur positive Währungswerte gibt, oder gab es immer negative Werte? –
@Tim: Bitte überprüfen Sie meine Antwort und hoffe, es wird nützlich sein. Danke Freund. – Gaurav123