将文本框的输入限制为数字C#时遇到问题

时间:2013-11-04 12:34:54

标签: c# input textbox limit

我试图限制一个非常简单的Web应用程序的文本框的输入,以便用户只能输入数字。我没有使用20行代码就无法做到这一点,任何帮助都是值得赞赏的!

protected void Button1_Click(object sender, EventArgs e)
    {
        {
            int input = int.Parse(InputBox.Text);
            if (input > 15)
            {
                String hot;
                hot = "hot";
                Result.Text = hot;
                Result.BackColor = System.Drawing.Color.Red;
            }
            else if (input <= 15)
            {
                String cold;
                cold = "cold";
                Result.Text = cold;
                Result.BackColor = System.Drawing.Color.Blue;
            }
        }
    }

谢谢!

7 个答案:

答案 0 :(得分:2)

以下是验证数值的javascript代码。

<script type="text/javascript">
        function ValidateTextBox() {
            var value = document.getElementById("txtprice").value;
            if (!isNumber(value)) {
                alert("Please Enter Numeric Value ");
                return false;
            }
            else {
                return true;
            }
        }
        function isNumber(n) {
            return !isNaN(parseFloat(n)) && isFinite(n);
        }
    </script>

ASPX页面: -

  <asp:Button ID="Button1" runat="server" OnClientClick="return ValidateTextBox();" Text="Button" OnClick="Button1_Click" />

答案 1 :(得分:0)

要将其限制在用户的html页面,您需要明确地使用Javascript或jQuery函数或隐含(例如通过microsoft工具)。要通过将文本值分隔为服务器端的行来获取行数,请使用String.Split方法。

答案 2 :(得分:0)

使用正则表达式检查它是否为数字,然后用它执行所需的操作,如下所示:

  if ((Regex.IsMatch(InputBox.Text, @"^[0-9]+$")))
        {
            try
            {

答案 3 :(得分:0)

使用int.TryParse,这会返回一个布尔值,具体取决于字符串是否可以解析为int。这样您就可以知道数字是否已输入文本框。

答案 4 :(得分:0)

您是否尝试在网页上使用正则表达式来阻止用户输入数字?也许Try catch也可能有所帮助

try{
    int input = int.Parse(InputBox.Text);
    //add any addition logic you need here
}
catch{
    Result.Text="Not a number";
}

答案 5 :(得分:0)

尝试将以下标记添加到TextBox旁边的Web应用程序中:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Input must be a number!"
    ValidationExpression="^[1-9]\d*$" ControlToValidate="InputBox"></asp:RegularExpressionValidator>

这将验证每个回发上的控件“InputBox”,以确保它匹配正则表达式^[1-9]\d*$,它只允许整数值。

如果您只想要特定的回发来验证输入,请查看Validation Groups

此外,如果您需要小数值或需要允许其他数值,请参阅以下问题答案:https://stackoverflow.com/a/2811058/1941466

答案 6 :(得分:0)

在将表单发送到服务器之前,您还可以使用HTML5表单验证进行一些验证。以下是一些示例(http://www.the-art-of-web.com/html/html5-form-validation/):

<input type="text" name="temp" required> (requierd validation)
<input type="number" size="2" name="temp" min="-273" max="999" value="21"> (number input type with defaults and limits)

通过HTML5验证,您无需验证代码中的任何内容,您可以按原样使用代码。 (注意:在实际生产代码中,我会验证客户端和服务器端)