【问题标题】:Why does adding a hidden text box to a form stop IE refreshing on enter为什么在表单中添加隐藏文本框会阻止 IE 在输入时刷新
【发布时间】:2010-08-30 12:31:19
【问题描述】:

我正在寻找一种解决方法,以阻止 IE 刷新页面而不是提交我的单行表单,当用户点击 Enter 而不是点击 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

谢谢!

【问题讨论】:

    标签: html internet-explorer forms


    【解决方案1】:

    您是真的将 ACTION 值设置为空字符串,还是只是为您的代码示例这样做?

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

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

    IIRC,IE 的表单处理中有一段代码表明,如果您的表单包含一个 single 测试字段,则按 ENTER 将提交该表单。在您的解决方法中,您添加了一个额外的文本字段,因此不会应用优化。

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

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 2018-04-07
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多