客户端验证失败后表单仍然提交问题!导致页面刷新,辛辛苦苦输入的内容荡然无存。
多么奇怪的问题。按道理,验证失败,就应该显示各种错误信息,不会提交表单才对。而现在,错误信息正常显示,但页面却刷新了一遍。
更奇怪的是,这个问题只发生在生产环境,我本地开发环境就一切正常。
于是产生以下疑惑:
1、是配置文件的选项问题?
据说,web.config里有个选项 <add key="ClientValidationEnabled" value="true" /> ,与客户端验证息息相关,但开发环境和生产环境的值都是true。
2、是web服务器的问题?
开发环境的WEB服务器是VS2012自带的,莫非IIS7.0就不行?事实证明,也不是这个问题
3、查资料,没有类似的情况。无奈,用FIREFOX的firebug,发觉打开生产环境相关页面,有脚本报错,指向jqueryval。
经过对比,开发环境比生产环境多了一个JS文件:jquery-1.7.1.js,拷贝过去,问题解决。
这个jquery-1.7.1.js原本是系统自带的,后来我用了许多第三方的jquery控件,jquery的版本升到了 jquery-1.10.2.js,将1.7.1从项目文件里排除了,但没有删除。因此部署到生产环境中就没有这个低版本。这次出现问题,估计是验证代码里有用到里面的东西。