2010-03-26 15 views

Répondre

7

Avec jQuery, en supposant que vous avez une entrée comme ceci:

<input type="text" id="someInput" name="something"/> 

Vous pouvez utiliser ceci:

$('#someInput').blur(function() { 
    var floatValue = parseFloat(this.value); 
    if (!isNaN(floatValue)) { // make sure they actually entered a number 
     this.value = floatValue.toFixed(2); 
    } 
}); 

Chaque fois que l'entrée perd le focus, la valeur sera convertie a toujours 2 décimales , tant que l'utilisateur a entré quelque chose qui peut être analysé en un nombre.

+2

'isFinite' ne suffit pas, il retournera' true' à tort avec une chaîne vide ou une chaîne contenant uniquement des caractères espace-blanc (puisque tous deux coercent '0'), par exemple:' isFinite ('') == true; ',' isFinite ('\ t \ n') == true', dans ces cas, l'entrée se terminera par '' NaN '' comme valeur. – CMS

+1

@CMS Ah, je vais revenir à ma version précédente de la réponse alors: 'parseFloat' d'abord, puis vérifiez' isNaN'. –

+0

Démo: http://jsfiddle.net/SsG4H/ –

Questions connexes