2013-11-04 49 views
2

我试图限制非常简单的Web应用程序的文本框的输入,以便用户只能输入数字。如果没有使用20行代码,我会遇到麻烦,任何帮助都是值得赞赏的!将文本框的输入限制为数字时遇到问题C#

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; 
      } 
     } 
    } 

谢谢!

+0

这不会限制文本框输入到数字,您只是检查给出的数字值。这可能导致这种情况下降。你想限制**输入还是只检查值? – Nunners

+0

我已经删除了我的限制它的尝试,因为它是一团乱七八糟的代码:/我想限制输入(然后检查值) – WhereAreYouSyntax

+0

您可以使用正则表达式 – Sai

回答

0

您是否尝试过在网页上使用正则表达式来防止用户输入数字?也许尝试捕获也可能有帮助

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

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

+0

请参阅下文,您也可以使用HTML5,从而否定在他的示例中使用jQuery。 – PmanAce

+0

我太快了,不知道如何删除我的答案:) – LINQ2Vodka

0

使用正则表达式来检查它是否是数字,那么你以后需要什么,就像这样:

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

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

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" /> 
+0

你应该告诉他如何调用这个javascript函数。 – PmanAce

+0

@PmanAce: - 感谢您的回复,我编辑答案。 – Kuldeep

0

尝试添加下面的标记到你的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

+0

谢谢!我已经使用这个,但它显示错误消息,即使我输入0-9之间的整数 – WhereAreYouSyntax

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验证,你就不需要在你的代码来验证任何东西,你可以用你的代码是。 (注意:在实际的生产代码中,我会验证客户端和服务器端)

相关问题