2009-01-07 77 views
1

这对我来说是一个挑战。它很容易复制,虽然一个相当模糊的问题。这是因为我在网页上做了一些JavaScript工作,但也使用了ASP.NET提供的验证控件。在Firefox中验证客户端代码的ASP.NET断裂呈现

一些细节前面:使用基于Windows Vista的开发机与3.5框架和IIS 7.我也有运行Windows Server 2003,也与3.5框架,但运行的QA机IIS 6

用简单的TextBox,验证控件和按钮提交页面。例如:

<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的验证码工作正常......但是不是适用于Firefox。当按下提交按钮(带有空白文本框)时,客户端代码似乎被忽略并执行回发。现在验证错误被服务器端所捕获 - 但我想知道为什么它不工作的客户端摆在首位。

这里有趣的怪癖是,如果我从开发机器(工作的那个)和QA机器(不工作的机器)在Firefox下采取页面源代码视图并比较它们 - 客户端验证代码是显着不同的。

关于如何改变客户端验证代码以使用QA机器在Firefox中工作的想法?

更新:有几条评论要求查看生成的源代码。我已经将Dev和QA源码保存为.htm文件并将其压缩。你可以在http://www.optsolutions.com/testvalidation.zip

+0

你能够发布生成的JavaScript在这两种情况下(工作和不工作)? – 2009-01-07 23:26:00

+0

我们在这里谈论什么版本的Firefox?你有没有确保清除缓存,所以你没有旧文件? – epascarello 2009-01-08 01:55:47

回答