关于RequiredFieldValidator的怪异现象

这个问题其实在cnblog和csdn上都问过,不过没有人给出过合理的解释,所以至今我还是觉得比较怪异。

我在页面动态添加了一个RequiredFieldValidator,其属性分别为:

Code

当inputTextbox为空的时候,提交验证的可以直接通过,但在服务器短的时候却报了错。
我调试时发现一个关键的地方就在于,在vs2005内部的脚本函数ValidatorValidate中,因一个判断(typeof(val.evaluationfunction) == "function")为false,从而使语句

Code

不能执行。
而实际上val.evaluationfunction="RequiredFieldValidatorEvaluateIsValid",RequiredFieldValidatorEvaluateIsValid呢,是一个函数,其作用就是判断验证输入控件inputTextbox的值是否为空。
用immediate窗口调试发现,RequiredFieldValidatorEvaluateIsValid(val)的值为false,即判断出那个输入控件为空了。
这究竟是为什么呢,因为代码vs2005中asp.net内部的,不是我写的,所以我十分的困惑。

另外:我担心是vs出了问题,所以我在另一个网页中重新作了一个静态的例子,这时却不存在这个问题。
我也担心,也许是因为母板邦定的时候,ControlToValidate弄错了监控对象得原因吧,但我从内部的各种调试结果来看,好像没有问题,ControlToValidate监控的对象应该就是我要控制的那个输入控件。
这个问题好怪异,因为这可是我以前调试通过,没有问题的代码。
也许别人都见怪不怪吧,对我来说,这的确是一个怪问题。

posted @ 2007-12-11 16:01  Sangplus  阅读(406)  评论(0编辑  收藏  举报