我有一个asp.net页面有一个服务器端提交按钮和2个文本框只接受数值values.Am也使用asp.net验证控件。使用asp.net处理错误消息
如果用户在两个文本框中键入非数字数据,我如何在页面上只显示1条错误消息: “只允许数字值。” 而我想在不触发服务器端事件的情况下实现这一点。
谢谢。
我有一个asp.net页面有一个服务器端提交按钮和2个文本框只接受数值values.Am也使用asp.net验证控件。使用asp.net处理错误消息
如果用户在两个文本框中键入非数字数据,我如何在页面上只显示1条错误消息: “只允许数字值。” 而我想在不触发服务器端事件的情况下实现这一点。
谢谢。
显然你需要用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功能
你可以使用正则表达式验证:
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="\d"
Display="Static"
ErrorMessage="Only numeric values are allowed."
EnableClientScript="True"
runat="server"/>
你可以使用上面的\ d正则表达式使用jQuery验证。使用jquery,你将有更多的输出控制。 It is discussed here.
如果您只想要一条错误消息,我会建议使用自定义验证程序。你将不得不编写你自己的服务器和客户端验证功能,但这很简单。这里是一个链接:
http://msdn.microsoft.com/en-us/library/f5db6z8k(VS.71).aspx
你也可以使用一个比较验证,但随后你将必须有一个为每个控制,你会导致两个错误消息。
感谢...但是,如果我在他们两个附加的RegularExpressionValidator到每个文本框,如果在非数值用户类型,那么将显示两次的错误信息我不想在页面上显示。我想显示错误消息只有一次。 – user74042 2009-06-27 00:19:43
你是对的。自从他满足要求以来,我已经提出了杰克的答案。 – 2009-06-27 03:00:43