2009-06-14 9 views
5

Ich möchte Werte in einem der folgenden Format akzeptieren:jQuery-Plugin für die Formatierung Eingänge

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

Ist es möglich, um das zu tun mit Masked Input Plugin?

Wenn nicht, welches Plug-in suche ich?

Wie kann ich angeben, dass ein Zeichen optional ist?

Der Code habe ich so weit gekommen

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

Antwort

5

Hier ist, wie ich die Gültigkeitsregel implementieren würde:

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

Das Problem mit dem Muster ist, dass es nicht mit fester Länge ist, So schwer in Maske zu programmieren, und Sie können einige Leute treffen, die $ 3,5 geben, was nicht das ist, was Sie wollen. Mit solch einem Muster denke ich, dass es schwer sein wird, nicht auf das Regexp-Matching zurückzugreifen.

Sie können erwägen, den Cent - Teil obligatorisch zu machen, in diesem Fall ist Ihr Muster fast in Ordnung, fügen Sie einfach .99 am Ende hinzu und es sollte es tun (obwohl ich als Benutzer meine Währung mit einem Leerzeichen ...).

+0

+1 und akzeptiert –

1

Ich weiß, dass in der Maske Du auch einen Teil der Maske optional machen, so dass Sie vielleicht in der Lage sein, um wegzukommen mit dieser

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

dies nicht funktioniert –

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

$ (“. Währung "). Maske (" ~ $ 9? .99 ");

ist es nicht funktionieren ???

4

Ich denke, das wird Ihnen helfen.

Verwenden Sie die Syntax

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

können Sie das Symbol zeigen, aber es ist wahrscheinlich besser, es zu verbergen.