2009-06-26 87 views
0

我有一个asp.net页面有一个服务器端提交按钮和2个文本框只接受数值values.Am也使用asp.net验证控件。使用asp.net处理错误消息

如果用户在两个文本框中键入非数字数据,我如何在页面上只显示1条错误消息: “只允许数字值。” 而我想在不触发服务器端事件的情况下实现这一点。

谢谢。

回答

3

显然你需要用javascript来做到这一点。

我不知道确切的JavaScript方法来检查输入是否是数字,我猜你可以使用正则表达式。但是,你可以有一个隐藏的div如

<div id="numericErrorMessage" class="error" style="display:none;"> 
     Numeric Values only. 
</div> 

然后,你可以这样做:

if(!IsNumber(text1) || !IsNumber(text2)) { 
    document.getElementById(numericErrorMesage).style.display = 'block'; 
} 
当然

这是“pseudocodish”但我认为这会为你工作,一旦你找到正确的路JavaScript可以检查有效数字和公正的地方,在ISNUMBER功能

0

你可以使用正则表达式验证:

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
       ControlToValidate="TextBox1" 
       ValidationExpression="\d" 
       Display="Static" 
       ErrorMessage="Only numeric values are allowed." 
       EnableClientScript="True" 
       runat="server"/> 
+0

感谢...但是,如果我在他们两个附加的RegularExpressionValidator到每个文本框,如果在非数值用户类型,那么将显示两次的错误信息我不想在页面上显示。我想显示错误消息只有一次。 – user74042 2009-06-27 00:19:43

+0

你是对的。自从他满足要求以来,我已经提出了杰克的答案。 – 2009-06-27 03:00:43

1

你可以使用上面的\ d正则表达式使用jQuery验证。使用jquery,你将有更多的输出控制。 It is discussed here.

0

如果您只想要一条错误消息,我会建议使用自定义验证程序。你将不得不编写你自己的服务器和客户端验证功能,但这很简单。这里是一个链接:

http://msdn.microsoft.com/en-us/library/f5db6z8k(VS.71).aspx

你也可以使用一个比较验证,但随后你将必须有一个为每个控制,你会导致两个错误消息。