我有一个文本框,用户必须在十进制后输入两位以上的数字。如何在不使用javascript的情况下执行此操作?
感谢。
答案 0 :(得分:2)
您可以设置文本框的MaxLength
属性,但是没有任何关于小数点是否或位置的概念。
您还可以使用CustomValidator
并通过ServerValidate
事件检查服务器上输入的号码。但是这需要去服务器检查值(即它最初看起来像你的表单允许用户输入无效的数字)。
您还应该能够使用RegularExpressionValidator
,具体取决于您确切的全球化要求,它将在客户端上使用JavaScript来提供即时反馈:
<asp:TextBox ID="NumberTextBox" runat="server" />
<asp:RegularExpressionValidator runat="server" ControlToValidate="NumberTextBox"
ValidationExpression="\d+(?:(?:\.|,)\d{1,2})?" />
如果您希望立即向用户提供反馈,则需要使用基于JavaScript的解决方案。
答案 1 :(得分:1)
如果没有直接或间接使用javascript,您不能使文本框停止接受两位小数后的文本。 (这有时称为输入掩码)。
但是,您可以允许用户输入自由格式文本并在服务器上回发时验证文本。您可以自动为它们舍入数字,也可以向客户端返回错误消息。
答案 2 :(得分:0)
如果您确实需要阻止用户在小数点后输入两位以上的数字,则需要使用JavaScript或为您实现JavaScript的服务器控件。
然而,允许他们输入任意数量的数字然后在验证时捕获它(或者只是舍入到两位数)可能更有意义。