【问题标题】:"Submit" button works in Firefox 3 but not in IE7 (ASP 1.1)“提交”按钮在 Firefox 3 中有效,但在 IE7 (ASP 1.1) 中无效
【发布时间】:2008-09-29 16:37:52
【问题描述】:

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

在网络服务器上通过 FTP 上传新代码后,当我使用 Firefox 3 单击“提交”按钮时,该按钮会执行它应该执行的操作。使用 IE7,什么都不会发生。没有页面加载,没有刷新,没有错误,什么都没有。 IE 不忙,它不会超时,它会 nada。

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

有什么想法吗?

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

当然,尽管所有必填字段都有他们需要的内容。当我通过遗漏必填字段中的信息来测试它时,验证也有效,IE7 要求我填写数据。奇怪的一个。

【问题讨论】:

    标签: .net asp.net


    【解决方案1】:

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

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

    抱歉,Mecki,如果我对 JavaScript 有任何好处,我会说,你的回答会让我朝着正确的方向前进。 西蒙,在调查您的想法时,我注意到 aspnet_client 的 javascript 包含。一天结束时,我通过反复试验解决了这个问题,所以我完全不知道是什么导致了我的问题。感谢您的帮助。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

      • 其实我以前也遇到过这种情况,我都忘了。不幸的是,只是快速浏览了让我烦恼的代码,它基本上验证了。我将不得不仔细检查,因为您的解决方案感觉正确!
      【解决方案3】:

      从页面中删除多个<form> 标签。
      asp.NET 只允许在页面中添加一个<form> 标签。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 2023-03-27
            • 2015-06-11
            • 1970-01-01
            • 2019-01-15
            • 2010-10-22
            • 1970-01-01
            • 1970-01-01
            • 2012-02-17
            相关资源
            最近更新 更多