【问题标题】:Strangest problem with IE6 not submitting a formIE6不提交表单的最奇怪问题
【发布时间】:2011-04-02 19:25:45
【问题描述】:

我在这里需要专家建议...

我遇到了职业生涯中最奇怪的问题...

我有一个带有很多“SELECT”标签的表单。每个标签都包含大量的“OPTION”标签。

表单根本不会提交,但是当我删除部分表单内容(例如,一些 SELECT 标签)时,表单会正确提交。

但是,没有任何一致性,我的意思是,标签的删除可以是随机的。 我已经尝试查看表单的“已删除”部分的确切部分可能导致表单无法提交,但我无法弄清楚。

向您展示一个示例会更容易解释... 我将跳过表单标签和 js 函数,因为经过数小时的头痛,我很肯定它们现在不是问题......

这是一个 SELECT 标记:

<div class="nav_sub_juveler" id="nav_sub_juveler">

  <select name="smycken_type" id="smycken_type" style="width: 130px; margin-bottom: 5px;">
                 <option value="Alla Typer" class="nav_option_main" selected>-- Alla Typer --</option>
                 <option value="Klockor & Ur" title="Klockor, Ur">Klockor & Ur</option>
                 <option value="Juveler" title="Smycken, Pärlor, Guld, Silver, Diamanter mm">Juveler</option>
                 <option value="Övrigt" title="Övrigt">Övrigt</option>
  </select>

<br />

      <input type="radio" name="smycken_action" id="smycken_säljes" value="Säljes" checked onClick="disable_actions('nav_sub_juveler', false);">
      <font face="Arial, Helvetica, sans-serif" style="font-size:14px; font-weight:bold;">Säljes</font>
      <input type="radio" name="smycken_action" id="smycken_köpes" value="Köpes" onClick="disable_actions('nav_sub_juveler', true);">
      <font face="Arial, Helvetica, sans-serif" style="font-size:14px; font-weight:bold;">Köpes</font>

</div>

现在,在表单的这一部分,我有一个包含一些选项的分区容器(就像我的表单的其余部分一样)。 如果我选择删除此处的单选按钮,表单将提交。 所以马上,你会想“好吧,单选按钮一定是有什么东西导致表单不提交!”。 但不是! 如果我改为删除选择标签中的“选项”(或一起选择标签),但离开收音机,表单将再次提交。 但是离开两者都不会提交表单。

奇怪的是,表单的其余部分与此完全相同,它会同时提交单选和选择...

我想不通...

您可以在这里看到任何可能导致问题的东西吗?

PS:css也没有问题,问题在别处... PS2:我尝试过重写和重新排列文本,但没有运气

【问题讨论】:

  • 我想查看表单标签。如果您使用“GET”形式,您可能会遇到查询字符串太长的问题。实际上你是通过 JavaScript 提交表单吗?如果是这样,我会在它的代码中寻找问题。
  • 这个限制只在IE6中吗?请告诉我更多,因为这似乎是问题所在。页面重新加载,但由于更改为“POST”而出现多个错误。
  • 我之前看到了这个,想回来看看解决方案。有趣的是,像大多数事情一样,海报所说的项目绝对不是问题......原来是问题(表单标签)。海报没有错,只是说我们确定不是问题的事情通常很奇怪:)

标签: javascript html css browser internet-explorer-6


【解决方案1】:

如果&lt;form&gt; 使用的是GET,请尝试将其更改为POST,看看是否会有所不同。

正如@spbfox 所说,URL 的长度是有限制的。

编辑

不仅仅是 IE6,超过 2k 的 URL 会导致各种损坏。

我有一个旧版应用程序,它在一个大页面(100 多个字段)上使用 GET,并且多年来一直运行良好……然后去年冬天,用户安装了一个通用工具栏(Google、Yahoo 或 Bing,不记得了其中),它会默默地截断数据。将页面更改为 POST 修复了它。

当然,如果您的操作页面使用 Request.QueryString(),您必须将其更改为 Request.Form()。

【讨论】:

  • 这个限制只在IE6中吗?请告诉我更多,因为这似乎是问题所在。由于更改为“POST”,页面重新加载但出现多个错误...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多