我想在文本框中输入数字,文本框会自动将这些数字转换为货币。(12,345,654)
我可以使用FilteredTextBoxExtender
<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
TargetControlID="TextBox3"
FilterType="Custom, Numbers"
ValidChars="," />
但我希望在用户输入数字时自动添加逗号。
答案 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" />