【发布时间】:2010-09-30 04:03:53
【问题描述】:
这个对我来说是一个障碍。尽管是一个相当晦涩的问题,但它很容易复制。它是在我在网页上做一些 javascript 工作时出现的,同时还利用了 ASP.NET 提供的验证控件。
一些细节:使用基于 Vista 的开发机器和 3.5 框架和 IIS 7。我还有一台运行 windows server 2003 的 QA 机器,同样使用 3.5 框架但运行 IIS 6。
使用一个简单的文本框、验证控件和按钮获取一个页面以提交它们。例如:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Text is Required" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />
这里是简单的 ASP.NET 验证控制代码...这里的想法是为必填字段生成客户端验证代码,除非文本框有一个字段,否则不会进行回发。如果浏览器不支持客户端脚本,那么 ASP.NET 将使用 Page.IsValid 属性在服务器端捕获它。
当我从基于 Vista 的开发机器上运行此程序时,会为 IE 和 Firefox 生成客户端脚本代码,并且可以正常工作。
当我从基于 win2003 的 QA 机器运行时,还会为两种浏览器生成验证器控件的客户端代码。 IE 的验证代码工作正常……但 Not 是否适用于 Firefox。当按下提交按钮(带有一个空文本框)时,客户端代码似乎被忽略并执行回发。现在验证错误在服务器端被捕获 - 但我想首先知道它为什么不能在客户端工作。
这里有趣的怪癖是,如果我在 Firefox 下从开发机器(可以工作的机器)和 QA 机器(不工作的机器)获取页面源视图并比较它们 - 客户端验证代码会非常显着不同的。
关于如何更改以使客户端验证代码在 Firefox 中与 QA 机器一起工作的想法?
更新:有几个 cmets 要求查看生成的源代码。我已将 Dev 和 QA 源代码保存为 .htm 文件并将它们压缩。您可以通过http://www.optsolutions.com/testvalidation.zip获得它们
【问题讨论】:
-
你能在两种情况下(工作和不工作)发布生成的 JavaScript 吗?
-
我们在这里讨论的是什么版本的 Firefox?您是否确保清除缓存以确保没有旧文件?
-
请发布生成的 HTML 源代码,然后我们可以发现错误。
标签: asp.net javascript iis validation