如何设置文本框的货币格式?

时间:2013-04-25 08:12:46

标签: javascript asp.net

我想在文本框中输入数字,文本框会自动将这些数字转换为货币。(12,345,654)

我可以使用FilteredTextBoxExtender

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
TargetControlID="TextBox3"         
FilterType="Custom, Numbers"
ValidChars="," />

但我希望在用户输入数字时自动添加逗号。

3 个答案:

答案 0 :(得分:6)

我使用javascript代码。

  function Comma(Num) { //function to add commas to textboxes
        Num += '';
        Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
        Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
        x = Num.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1))
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
        return x1 + x2;
    }


<asp:TextBox ID="aPriceTextBox" runat="server" Width="100px"    onkeyup = "javascript:this.value=Comma(this.value);" />

答案 1 :(得分:0)

在这里使用masked-edit control会是一个好主意。

检查StackOverflow上的this post以获取更多信息。它建议了实现货币字段文本框的方法。

您也可以参考codeplex上的this component

答案 2 :(得分:0)

您可以使用ajax mask edit extender 这里有一些例子:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <asp:TextBox ID="TextBox1" runat="server" />
        <cc1:MaskedEditExtender runat ="server"
            TargetControlID="TextBox1"
            Mask="999,999,999,999"
            MessageValidatorTip="true"
            MaskType="Number"
            InputDirection="RightToLeft"
            AcceptNegative="Left"
            DisplayMoney="None"
            ErrorTooltipEnabled="True" />