"提交"按钮在Firefox 3中有效,但在IE7(ASP 1.1)中不起作用

时间:2020-03-06 14:53:02  来源:igfitidea点击:

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

随着新代码通过FTP传输到Web服务器上,当我使用Firefox 3单击"提交"按钮时,该按钮将执行应有的功能。使用IE7,没有任何反应。没有页面加载,没有刷新,没有错误,什么都没有。 IE并不忙,它不超时,它可以运行。

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

有什么想法吗?

对Mecki的回应:
它是method = POST,但这是JavaScript回发。另外,我检查了输出的HTML,并且Submit按钮具有JS" onclick"事件:
onclick =" if(typeof(Page_ClientValidate)=='function')Page_ClientValidate();"

绝对,尽管所有必填字段均具有所需的内容。验证也与我测试时一样,通过从必填字段中遗漏信息来进行测试,IE7要求我填写数据。奇怪的一个

解决方案

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

我刚刚看到将ASP网站移植到ASP.NET时完全相同的问题。我有一个可以在Firefox,Safari,Chrome中提交的表单,但是在IE或者Opera中却完全不起作用。像表单一样,它什么也不做,也不抛出任何错误等,它只是坐在那里什么都不做。与表单不同,这是一个普通的旧回发,它不使用任何客户端来触发表单提交,不进行客户端验证等。

如果我在提交按钮上添加了onclick处理程序,则可以看到该按钮已被单击,但是如果我在表单上添加了onsubmit处理程序,则不会得到任何结果。如果我使按钮onclick处理程序通过JavaScript提交表单,则可以正常工作,只是直接提交不起作用。

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

这是一个经典的错误示例,当我们从头开始编写代码时不会出错,但是在批量移植代码时却很容易出错,因为以前编写的某些东西在代码中没有立即看到的副作用。正在努力。

这可能与问题相关,也可能与问题无关,但它可能会帮助遇到此问题的其他任何人找到可能的答案。

这个问题还不完整,在事后看来,我遗漏了一个非常重要的细节:我还将站点从一台主机转移到另一台主机上。

问题似乎是Validating JavaScript代码的版本不同。我通过将aspnet_client \ systemweb \ 1_1_4322 \ *。*目录从IIS的根目录复制到网站的根目录来解决此问题。我转移的网站已经在此目录中包含代码,并且它必须是其他Build版本或者与新服务器上运行的ASP有所不同的版本。

抱歉,我会说,如果我对JavaScript有任何帮助,那么回答将引导我朝正确的方向发展。
Simon,在调查想法时,我注意到aspnet_client包含了javascript。一天结束时,我的问题已通过反复试验解决,因此我不完全知道是什么原因导致了我的问题。感谢帮助。

我只是有同样的问题。只要确保我们不嵌套标签即可。或者,如果我们正在使用Google搜索框执行此操作,则可以查看本指南,以解决以下问题:

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