为什么在表单中添加隐藏文本框会在输入时停止IE刷新

时间:2010-08-23 03:40:04

标签: html internet-explorer forms

我正在寻找一个修复程序来阻止IE刷新页面而不是提交我的单行表单,当用户点击进入而不是单击go时。

我找到了这个解决方案,效果很好,但我想知道是否有人可以解释它为什么有效?

我使用的解决方案是在表单标记中添加隐藏文本输入,例如

`<form name="SearchForm" id="SearchForm" method="get" action="">

/*This is the hidden text input*/
<input type="text" style="visibility:hidden;display:none;" name="ieSearchEnter">

</input>
<fieldset>
<span><input type="text" name="Search" id="Search"/></span>
<div class="field actions">
<input type="submit" name="Go" id="Go" class="submit" value="Go"/>
</div>

</fieldset>
</form>`

我找到了here

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否真的将ACTION值设置为空字符串,或者您只为代码示例执行此操作?

我认为IE不是真正“刷新页面” - 我认为它会自动提交您的表单。

这是一个简单的测试页面:http://www.enhanceie.com/sandbox/simpleform.asp。当您按Enter键时,您将看到URL已更新以传递用户的值。

IIRC,IE的表单处理中有代码表示如果你的表单包含单个测试字段,那么点击ENTER将提交该表单。在您的解决方法中,您添加了一个额外的文本字段,以便不应用优化。

我认为您的服务器端代码可能需要表单提交包含“Go = Go”或忽略提交的值(Search = Whatevertheuserhadtyped)并只是重新显示表单。如果您更改服务器端脚本以使其不需要Go = Go,那么您的问题就会消失。