2009-06-14 9 views
5

Je veux accepter des valeurs dans le format suivant:plugin jQuery pour formater les entrées

  • - 5 $
  • - 5,00 $
  • 5 $
  • 5,00 $

Est-il possible pour ce faire en utilisant Masked Input Plugin?

Si non, quel plug-in je recherche?

Comment est-ce que j'indique qu'un caractère est facultatif?

Le code que j'ai jusqu'à présent

$.mask.definitions['~']='[ +-]'; 
$(".currency").mask("~$9"); 

Répondre

5

Voici comment je mettre en œuvre la règle de validation:

$('.myinput').val().match(/^[+-]?\$\d(?:\.\d\d)?$/) 

Le problème avec votre modèle est qu'il ne soit pas de longueur fixe, si difficile à coder dans un masque, et vous pouvez rencontrer des gens qui donnent 3,5 $, ce qui n'est pas ce que vous voulez. Avec un tel modèle, je pense qu'il sera difficile de ne pas revenir sur l'appariement d'expressions rationnelles.

Vous pouvez envisager de rendre la partie de cent obligatoire, auquel cas votre modèle est presque correct, il suffit d'ajouter .99 à la fin et il devrait le faire (même si en tant qu'utilisateur je détesterais devoir commencer ma monnaie avec un caractère de l'espace ...).

+0

+1 et accepté –

1

Je sais que dans le masque, vous pouvez également faire une partie du masque en option, de sorte que vous pourriez être en mesure de sortir avec cette

$.mask.definitions['~']='[ +-]'; 
$(".currency").mask("~$9?.99"); 
+0

cela ne fonctionne pas –

1
$.mask.definitions['~']='[ +-]'; 

$ (». Monnaie «). Masque (» ~ $ 9? .99 ");

est-ce que ça ne marche pas ???

4

Je pense que cela va vous aider.

Utilisez la syntaxe

$(mask_id).maskMoney({showSymbol:false,decimal:'.',precision:2}); 

Vous pouvez afficher le symbole, mais il est probablement préférable de le cacher.