这个问题,我遇到过,JQ验证插件就需要绑定事件的(从firefox中可以看到,就算是页面第一次加载的时候,UpdatePanel里面的数据也是异步加载的),所以当你将JQ验证插件放到了UpdatePanel控件里面之后,在异步刷新之后,JQ插件原来绑定的事件啥的,都失效了,所以需要在每次异步调用再重新绑定一下,才能起作用。具体的解决方法是添加一个UpdatePanelAnimationExtender控件,然后在它的onupdated()方法中,重新注册事件。以前我也是用UpdatePanel控件做异步调用的,不过不好使,直接用JQ的ajax功能,就好来,绑定事件都很好弄。页面也比较清爽。
没具体测试过你说的这样子的情况。不过按一般的操作来说的话,出问题的可能会是 jQuery验证插件和UpdatePanel控件本身之间操作冲突。jQuery的插件对表单的验证一般都需要接管form表单,而同样UpdatePanel控件也会接管他所在的form表单,这样子的话就会出现有两个接管表单的程序会同时占用同一个表单,所以验证操作会出现异常。
而提交按钮也一样,他只有在他当前的验证表单域中是有效的,而且使用jQuery验证插件进行验证时,在页面加载完成时会对当前验证的表单进行接管,举个简单的例子就是,在ID属性为form1的表单中你使用了jQuery的验证插件,哪么在页面加载后,jQuery验证插件会对form1的表单进行接管,此时的所有的操作都会被jQuery验证插件接管。而按照你说的,如果把提交按钮放在UpdatePanel控件中,那此时该提交按钮就会被UpdatePanel控件控件接管了。
个人理解啊!不一定是对的,但欢迎讨论。