<asp:textbox>应该只接受数字

时间:2015-07-08 13:24:23

标签: javascript c# asp.net

我在asp中创建了一个文本框,如下所示。现在我的问题是Textbox应该只接受数字。

<asp:TextBox ID="txtRate" runat="server" Text="" Width="100%" TabIndex="6" ></asp:TextBox>

如何在Js文件中实现该函数并在asp文件中调用它。我已经尝试过按键事件但错误提升为&#34;按键不是asp文本框的属性&#34;。

即使我无法满足要求,我也尝试过Rangevalidators,RegularExpressionValidator。

请帮帮我..

7 个答案:

答案 0 :(得分:1)

您应该使用CompareValidator Operator设置为DataTypeCheck

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Double" 
 ControlToValidate="txtRate" ErrorMessage="Value must be a number" />

这些是您可以查看的types

  • 字符串
  • 整数
  • 日期
  • 货币

答案 1 :(得分:0)

<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>

答案 2 :(得分:0)

使用rangevalidator或regularexpressionvalidator。 您必须为文本框设置ValidationGroup和CausesValidation。

有关示例,请参阅:http://www.tutorialspoint.com/asp.net/asp.net_validators.htm

您还可以使用javascripts对客户端进行验证。

答案 3 :(得分:0)

<asp:CompareValidator runat="server" ControlToValidate="txtRate" Type="Integer" Operator="DataTypeCheck" Text="Must be a number!"/>

如果需要,可以将Integer替换为Double

答案 4 :(得分:0)

我在项目中使用RegularExpressionValidator只接受数字和小数。

<asp:RegularExpressionValidator ID="RepRateRegExVal" 
       ControlToValidate="repRateTxtbox" 
       ValidationExpression="^\d*\.?\d*$"
       runat="server" 
       Display="Dynamic" 
       CssClass="validator"
       Text="Repetition Rate must be a valid number">
</asp:RegularExpressionValidator>

如果您只想在小数点后接受一个地方,请将表达式更改为“^ \ d *。?\ d $”

答案 5 :(得分:0)

这个应该有效:

    <script language="javascript" type="text/javascript">
        function CheckNumeric(e) {

            if (window.event) // IE 
            {
                if ((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8) {
                    event.returnValue = false;
                    return false;

                }
            }
            else { // FireFox
                if ((e.which < 48 || e.which > 57) & e.which != 8) {
                    e.preventDefault();
                    return false;

                }
            }
        }

    </script>

    <asp:TextBox ID="txtRate" runat="server" Text="" Width="100%" TabIndex="6" onkeypress="CheckNumeric(event);"></asp:textbox>

source

答案 6 :(得分:0)

你应该使用ajaxtoolkit来做到这一点

 <ajaxToolkit:FilteredTextBoxExtender ValidChars="yourcharallow" runat="server" Enabled="True" TargetControlID="yourTextBox" ID="FilteredTextBoxExtender1"></ajaxToolkit:FilteredTextBoxExtender>