【问题标题】:Enter key wont submit form in IE6输入键不会在 IE6 中提交表单
【发布时间】:2011-04-02 14:13:59
【问题描述】:

我有这样的表格:

<form id="form_main" name="form_main" action="/search/" target="iframe001" method="get" onSubmit="reset_and_subm();">

Enter 键不会在 IE6 中提交此表单,但会在 Chrome、FF、Opera、Safari 和 IE8 中提交(尚未测试 IE7)。 事实上,即使按下提交按钮也不会提交表单。 我已经尝试了几个小时......可能是什么问题? 我试过这个:

<form id="form_main" name="form_main" action="/search/" target="iframe001" method="get" onSubmit="alert('hello');">

警报框会显示消息...

现在这里是函数“reset_and_subm();”

function reset_and_subm(){
    document.getElementById("p").value = 1;
    return true;
}

有人知道我应该在这里做什么吗?

顺便说一句,我已经检查了表单中的所有输入,一切看起来都还不错……所以假设表单的内容没有问题。

谢谢

更新:

我有一个提交按钮是的。 整个表单内容放在这里太大了,但它只包含一个文本字段。 其余的是“选择”和“隐藏输入”。 我在唯一的文本字段中按回车... 我还添加了提交按钮的代码:

<input name="nav_querystring" type="text" id="nav_querystring" style="width: 240px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;" value="">

<input type="submit" name="nav_submit" id="nav_submit" value="Sök" style="width: 55px; font-size: 13px;">

更新2:

需要指出的是,我已经包含了包含函数“reset_and_subm”的 js 文件,并且我在 .htaccess 中使用 mod_rewrite 来重写表单的操作。 我希望这些都不会导致问题。

更新3: 似乎问题可能出在正文 OnLoad eventy 中,我有一个未在此处列出的 js 函数。 IE6 不支持 OnLoad 吗? 我应该改用什么...

这是我当前的代码:

  <body onLoad="subSelection();">

谢谢

【问题讨论】:

  • 你能显示表格的完整代码吗?您在哪个字段中按回车键?有提交按钮吗?
  • this self-contained example 显示您的代码在 IE6 中运行良好,您的问题一定出在其他地方。
  • 好的,那我继续看。谢谢安迪...
  • 不确定它有多大帮助,但我倾向于使用 jQuery (jquery.com) 来避免我担心 IE6 的加载方式是否与其他浏览器相同。可能不是你的选择,但如果你做了很多 JS,我认为无论如何使用它是一件很棒的事情。 :)
  • 支持 IE6 是错误的,因为运行它的每个人都被黑了很多次。

标签: javascript html security browser forms


【解决方案1】:

在 IE 中存在一个错误,当按下“enter/return”键时,带有单个文本字段的表单将无法提交。解决方案是添加第二个字段: 简单:D

【讨论】:

  • 我听说过 - 只需添加一个隐藏字段
【解决方案2】:

我对您的代码做了两处更改。

当您从 onsubmit 调用函数时,我在方法调用中包含了“return”关键字。

由于表单只有一个表单元素,我在表单中添加了一个隐藏元素。

<form id="form_main" name="form_main" action="/search/" target="iframe001" method="get" onSubmit="return reset_and_subm();">
    <div style="display: none;"><input type="text" name="ie6"></div>
    <input name="nav_querystring" type="text" id="nav_querystring" style="width: 240px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;" value="">
    <input type="submit" name="nav_submit" id="nav_submit" value="Sök" style="width: 55px; font-size: 13px;">
</form>

如果你仍然卡住,请大声喊叫。

【讨论】:

  • 谢谢,但还是没有运气... 这是需要很长时间才能找到的令人毛骨悚然的错误之一。哪里有什么好的IE6调试工具?
  • 搜索一下IE Developer Tools,有点像火狐的Firebug。
【解决方案3】:

我似乎记得有一个奇怪的错误,即 IE6 中的一个页面上只有一个文本框,我们很久以前就不得不解决这个问题。尝试在页面上放置另一个空文本框,并将其样式设置为 display: none 并查看是否有效。这听起来可能很疯狂,但这就是疯狂的 IE 错误所发生的事情......

【讨论】:

  • 试过了,但没有解决问题...谢谢克里斯。
  • @Camran: stackoverflow.com/questions/270494/… 似乎是我为之奋斗的目标。也许你需要把它放在一个隐藏的 div 中,而不是自己隐藏。该页面上的其他选项也可能有所帮助。
  • 克里斯,非常感谢您的帮助...检查我的第三次更新,可能是这里的问题...我会同时调查您链接到的问题。
猜你喜欢
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 2020-10-06
相关资源
最近更新 更多