您的位置:首页 > 其它

使用CustomValidator验证用户输入

2011-02-14 14:40 309 查看
在验证某些用户输入时, ASP.NET提供的那几个简单的验证控件肯能难以满足需求。 例如如果我们需要一个复杂的,有条件的验证时, 就必须自己来定义验证方法了。下面是一个简单的使用CustomValidator的例子。

1

2 <div>
3 <asp:TextBox ID="tbDays" runat="server" ValidationGroup="submit"></asp:TextBox>
4 <asp:CustomValidator ID="tbDaysValidator" runat="server" ControlToValidate="tbDays" ValidationGroup="submit"
5 ErrorMessage="the value must be between 1 and 99" ValidateEmptyText="true" EnableClientScript="true"
6 ClientValidationFunction="ValidateTBDays">
7 </asp:CustomValidator>
8 </div>
9 <asp:Button ID="btnSave" ValidationGroup="submit" CausesValidation="true" runat="server" Text="Submit" OnClick="btnSave_Click" />

<script type="text/javascript">
function ValidateTBDays(source, eventArg) {
if (eventArg.Value) {
var number = /^[1-9]\d{0,1}$/;
eventArg.IsValid = number.test(eventArg.Value);
}
else {
eventArg.IsValid = false;
}
}
</script>

注意 “ValidateEmptyText” 属性, 如果不把这个属性设置为true的话, 那么当输入为空时就不会激发验证方法了。

在 ValidateTBDays 中, var number = /^[1-9]\d{0,1}$/; 这个正则表达式是用来验证输入的值是否是1-99之间的数的。

另外在写验证函数时,还要注意eventArg 中的属性Value 和IsValid 是大小写敏感的。

还有在某些情况下需要手动调用页面上的验证控件, 让他们各自进行验证, 调用方法就是 Page_ClientValidate('Submit'), 其中的参数就是ValidationGroup。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: