Here is a nice function in vanilla JS that handles things:
var format = function(num){
var str = num.toString().replace("$", ""), parts = false, output = [], i = 1, formatted = null;
if(str.indexOf(".") > 0) {
parts = str.split(".");
str = parts[0];
}
str = str.split("").reverse();
for(var j = 0, len = str.length; j < len; j++) {
if(str[j] != ",") {
output.push(str[j]);
if(i%3 == 0 && j < (len - 1)) {
output.push(",");
}
i++;
}
}
formatted = output.reverse().join("");
return("$" + formatted + ((parts) ? "." + parts[1].substr(0, 2) : ""));
};
However, for jQuery, you could always turn it into a plug-in, or just use it like:
$(function(){
$("#currency").keyup(function(e){
$(this).val(format($(this).val()));
});
});
EDIT
I updated the fiddle
JSFiddle