J'utilise habituellement accounting.js Vous pouvez le télécharger à partir de http://openexchangerates.github.io/accounting.js/#download
Il est assez facile à utiliser. Vous pouvez voir comment il fonctionne à partir de cette même page de téléchargement.
J'ai créé quelques fonctions javascript que j'utilise pour gérer le curseur :
function formatMoney(myField){
if(myField.selectionStart || myField.selectionStart == '0'){
var len = myField.value.length;
var caretPos = doGetCaretPosition(myField);
myField.value = accounting.formatMoney(myField.value);
var newlen = myField.value.length;
setCaretPosition(myField, newlen != len ? (newlen > len ? caretPos + 1 : caretPos - 1) : caretPos);
}
}
function doGetCaretPosition (ctrl) {
var CaretPos = 0;
// IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function setCaretPosition(elem, caretPos) {
elem.value = elem.value;
if(elem != null) {
if(elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
else {
if(elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
Vous pouvez utiliser les fonctions du champ de texte comme suit :
<input id="myField" type="text" onkeyup="formatMoney(this);" onChange="formatMoney(this);" onBlur="formatMoney(this);" />
Les fonctions d'obtention et de réglage de la position du curseur ont été obtenues à partir d'ici : Définir la position du curseur du clavier dans la boîte de texte html
Je l'ai testé sur l'émulateur Android 2.1. Bien que l'émulateur soit lent, il semble fonctionner. Vous pouvez trouver la capture d'écran ici : https://www.dropbox.com/s/9ximuwh64kadiea/shot.JPG?dl=0