【发布时间】:2018-02-10 18:26:09
【问题描述】:
我遇到了一个奇怪的问题,即 Internet Explorer 添加了其他浏览器没有添加的附加查询字符串参数。
该页面有一个具有自动提交功能的表单和一个“重置过滤器”按钮。当用户按下回车键时,它会强制提交。当用户在 Internet Explorer 中按 Enter 键时,出于某种原因选择了“重置过滤器”操作而不是提交按钮。
例如,IE 将这个添加到查询字符串中:
?search=this+is+text&op=Reset+Filters
在所有其他浏览器中,相同的查询如下所示:
?search=this+is+text
当我在 PHP 中检查 $_GET 超全局时,我注意到 op 仅在我在 IE 中运行应用程序时添加,并且仅当我在表单中按 enter 键时添加。
根据下面的 HTML,按 Enter 键会在查询字符串中添加 op 是有道理的,因为提交按钮和重置按钮都包含在表单中。但是为什么op 只会被添加到 IE 中呢?
<form>
...
<div class="submit-button">
<input class="form-submit" type="submit" id="edit-submit-fda-views" name="" value="Submit">
</div>
<div class="reset-button">
<input type="submit" id="edit-reset" name="op" value="Reset Filters" class="form-submit">
</div>
...
</form>
知道为什么会发生这种情况吗?
更新:另一条可能很重要的信息。因为表单是自动提交的,所以第一个提交按钮实际上是隐藏的。我想知道这是否就是 IE 使用第二个按钮作为提交处理程序的原因。
【问题讨论】: