一个控件关联了多个验证器,如何指定它们的依赖关系

Yanbin_Q 2010-05-06 04:32:16
已知某个输入框 TextBox, 需要放三个验证器 RequiredFieldValidtor,RegularExpressionValidator, CompareValidator.

已知后两个验证器会依赖于第一个验证器,当第一个验证器没通过时,后两个不会进行验证,只会出第一个验证器的错误提示。
问题是在第一个验证器通过的前提下,后两验证器都会工作,它们都未通过时就会显示出两条信息来,我希望是第三个验证器依赖于第二个,当第二验证器未通过时不会进行第三个验证。也就是说任何时候只会显示其中一个验证器的错误提示。

原本想用 CustomValidator 自定义验证器完成三个验证器的功能,客户端的验证代码好写,但是在客户端由于控件没有固定的 ID,所以在客户端的验证函数中不知道如何取得其他控制的值。

如何依次验证,只会显示一个验证器的提示信息
或在自定义验证器中读取其他控制的值。要用 <input runat="server" id="foo"/> 来写控件吗?
...全文
267 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yanbin_Q 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jshi123 的回复:]
刚才没有仔细看问题,楼主试下加上下面这段是否你想要的效果
HTML code

<script type="text/javascript">
var _ValidatorUpdateDisplay = ValidatorUpdateDisplay;
ValidatorUpdateDisplay = function(val) {
for (var i=0,v; i<Page_……
[/Quote]

谢谢,非常用疗效。
段传涛 2010-05-06
  • 打赏
  • 举报
回复
6楼的代码测试了吗 可以吗?
jshi123 2010-05-06
  • 打赏
  • 举报
回复
刚才没有仔细看问题,楼主试下加上下面这段是否你想要的效果

<script type="text/javascript">
var _ValidatorUpdateDisplay = ValidatorUpdateDisplay;
ValidatorUpdateDisplay = function(val) {
for (var i=0,v; i<Page_Validators.length && (v = Page_Validators[i]) != val; i++) {
if (v.controltovalidate == val.controltovalidate && !v.isvalid)
val.isvalid = true;
}
_ValidatorUpdateDisplay(val);
}
</script>
zhouwei7682719 2010-05-06
  • 打赏
  • 举报
回复
呵呵, koukoujiayi 说得有道理! 经常都是用js验证的 没怎么用过验证器..
koukoujiayi 2010-05-06
  • 打赏
  • 举报
回复
楼主的要求恐怕用控件验证难以达到!!
koukoujiayi 2010-05-06
  • 打赏
  • 举报
回复
用控件验证是简单方便,但楼主有这样的要求用控件验证反而不方便!
这样用写js代码来验证就较灵活!!
jshi123 2010-05-06
  • 打赏
  • 举报
回复
不会啊,如果不输入数据是不会进行正则和比较验证的,缺省工作方式就是符合你的要求的
frankbooth 2010-05-06
  • 打赏
  • 举报
回复
帮顶……

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧