2013-04-10 4 views
0

J'ai un champ de saisie que j'utilise pour obtenir un montant monétaire d'un utilisateur. J'utilise une fonction jQuery Money Mask pour mettre un masque sur l'entrée de l'utilisateur. Ainsi, par exemple, si l'utilisateur tape "100000", il apparaîtra dans le champ de saisie "$ 1,000.00". Le problème est que j'ai une configuration de modèle pour le champ de saisie pour le restreindre uniquement aux valeurs numériques. J'ai besoin de modifier cette expression régulière (pattern="[0-9]*") afin qu'elle accepte les chaînes monétaires. Toute aide est très appréciée!HTML Modèle de champ de saisie pour les valeurs numériques.

Code pour le champ de saisie:

<input name="rentPayment[paymentAmount]" id="paymentAmount" placeholder="0.00" value="" type="text" pattern="[0-9]*">

+0

'pattern =" (\ $)? \ D * "' – Bart

Répondre

2

Je ne suis pas familier avec JQuery argent masque mais si tout ce dont vous avez besoin est regex puis en suivant devrait être suffisant pour permettre à des valeurs monétaires.

pattern="[0-9$,.]*" - would allow 0-9 dollar sign, comma and period zero or more times. 
+1

Approche basse et sale. Pas parfait mais travaille pour mes fins. :-) – Zack

2

Que diriez-vous:

\$(\d(,?\d+)*)+(\.\d+)? 

Cela soutiendra:

324234,23423 $
$ 3.242.343
$ 3,242.4234
$ 3242

Mais je ne suggérerais pas cette approche, car cela dépendra de la localisation de l'utilisateur, et il a aussi une dépendance sur le plugin - qui est juste masquant l'entrée de l'utilisateur. Je préférerais valider la chaîne de l'utilisateur comme vous l'avez fait, et laisser le plugin de masquage faire son travail de simulation. Donc, vous devez faire votre validation avant que le plugin ait lieu.

Une solution réalisable pour cela serait de laisser le champ de validation vide - Money Mask va valider pour vous, donc vous n'avez pas besoin d'un modèle externe pour faire une validation supplémentaire dans ce cas.

+0

Merci. Je suis allé avec l'autre solution mais merci de prendre le temps de répondre! – Zack

+1

D'une manière ou d'une autre, cela ne fonctionnerait pas - je ne suis pas sûr de la façon dont vous manipulez le cas de 'pattern =" "' mais cela aurait le même effet –

Questions connexes