Using jQuery and the formatCurrency extension as below:
$(function() {
$(".currency").blur(function(){ formatCurrencyInput(this) });
});
function formatCurrencyInput(input) {
if($(input).val() != '') {
if(isNumeric($(input).val())) {
$(input).formatCurrency(null,{groupDigits:false,roundToDecimalPlace:2,symbol:'£'});
$(input).css('border-color', '');
}
else {
$(input).css('border-color', '#FFCCCC');
}
}
}
All my text inputs with the "currency" class are converted from 45 => £45.00 for example.
The weird thing is if the formatCurrencyInput function is defined in the section it works fine. If I externalise the function into a .js file, it returns £45.00 (note the  character). I guess this is a character encoding issue, but how do I fix this?
Try:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
...
You could also try changing £
to £
.
If you use any non-Ascii character in a JavaScript file, you should make sure that the server sends proper HTTP headers for it, identifying the character encoding. Other methods, such as a charset
parameter in the script
element used to refer to the file, or relying on the browser defaulting the encoding somehow (e.g., from the referring HTML document), as less reliable.
But if you have just a single non-Ascii character in a string literal, the simplest way is to escape it. The pound sign “£” U+00A3 can be escaped, inside a string literal, as \xA3
or as \u00A3
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With