“提交”按钮适用于Firefox 3但不适用于IE7(ASP 1.1)

时间:2008-09-29 16:37:52

标签: .net asp.net

我有一个旧网站的代码,我需要修改。有两个页面我修改了一些表单代码。我修改了文本框的最大长度,我稍微修改了函数中的一行或两行代码。发生“btnSubmit_Click”功能。

随着新代码在网络服务器上显示,当我使用Firefox 3点击“提交”按钮时,该按钮会执行它应该执行的操作。使用IE7,没有任何反应。没有页面加载,没有刷新,没有错误,没有任何东西。 IE不忙,它没有超时,它确实是虚无...。

在我的开发笔记本电脑上,当我运行项目时,提交按钮在IE7中可以正常工作。

有什么想法吗?

对Mecki的回应: 它是method = POST,但它是一个JavaScript回发的东西。我还检查了输出的HTML,并且提交按钮有一个JS“onclick”事件:
  onclick =“if(typeof(Page_ClientValidate)=='function')Page_ClientValidate();”

当然,所有必填字段都有他们需要的东西。验证也有效,因为我通过从必填字段中删除信息来测试它,IE7要求我填写数据。奇怪的一个。

5 个答案:

答案 0 :(得分:4)

问题还没有完成,我遗漏了一个后见之明非常重要的细节:我也将网站从一个主机移动到另一个主机。

问题似乎是验证JavaScript代码的不同版本。我通过将 aspnet_client \ systemweb \ 1_1_4322 \ *。* 目录从IIS的根目录复制到网站的根目录来修复此问题。我转移的网站,已经在这个目录中有代码,它必须是一个不同的Build版本或者来自新服务器上运行的ASP的东西。

道歉Mecki,如果我对JavaScript有任何好处,你的回答会引导我朝着正确的方向前进,我会说。 西蒙,正在调查你的想法,我注意到javascript包含 aspnet_client 。一天结束时,问题已经通过试验和错误修复,所以我不知道是什么原因导致了我的问题。谢谢你的帮助。

答案 1 :(得分:3)

在将ASP站点移植到ASP.NET时,我刚刚看到了完全相同的问题。我有一个表单可以在Firefox,Safari,Chrome中提交 - 但在IE或Opera中绝对没有任何内容。就像你的形式一样,它没有做任何事情,没有抛出任何错误等 - 它只是坐在那里什么都不做。与您的表单不同,这是一个简单的旧回发 - 它没有使用任何客户端来触发表单提交,没有客户端验证等。

如果我将onclick处理程序附加到提交按钮,我可以看到该按钮被单击 - 但如果我将onsubmit处理程序附加到表单,我什么也得不到。如果我使按钮onclick处理程序通过JavaScript提交表单,它工作正常 - 这只是直接提交不起作用。

在我的头撞到桌子上一段时间之后,我意识到页面上还有另一个表单 - 在这种情况下是由一个单独的类中的一个函数创建的,所以看不见并且不在乎。在ASP中,没有问题 - 两种形式是分开的。当然,ASP.NET将页面包装在自己的表单中,HTML不允许嵌套表单。我删除了我正在使用的主窗体周围的表单标签,但我忽略了第二种形式,因为它在页面的其他地方和代码中的其他位置。因此IE和Opera忽略了嵌套形式(正确地,我假设)但Firefox等人更宽容并允许表单提交。

这是一个从头开始编写代码时不会犯的错误的典型示例,但是在批量移植代码时很容易实现,而很久以前编写的内容会产生副作用,而这种副作用在您正在处理的代码。

这可能与您的问题有关,也可能没有关系,但它可能有助于遇到类似问题的其他人遇到此问题寻找可能的答案。

答案 2 :(得分:2)

从页面中删除多个<form>标记 asp.NET只允许一个<form>标记进入页面。

答案 3 :(得分:0)

提交按钮是否真的提交了表单(发送帖子/获取)还是调用JavaScript代码来执行检查或其他操作?如果是这样,我的第一个猜测就是发生了一些JS错误。你应该看看JS控制台? (如果IE有一个,不是我自己使用IE,但根据this MS page,它有一个,你只需要启用它。)

答案 4 :(得分:0)

我遇到了同样的问题。只要确保你没有嵌套标签。或者,如果您使用谷歌搜索框执行此操作,您可以查看本指南以了解解决方法:

http://www.codeproject.com/KB/aspnet/CustomSearchEngine.aspx