一尘不染

JSP / Servlet / IE组合不会在Enter上提交表单详细信息

jsp

使用IE 7,JDK 1.6和Sun Web服务器7。

在jsp表单中,我们有:

<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="send" value="Send"/>

即一个文本框和一个“提交”按钮(称为“发送”)。

servlet具有:

if (request.getParameter("send") != null && request.getParameter("send").trim().length() > 0) { ... }

使用Fiddler和IE,我们可以看到在填充id文本框并按Enter时发送了以下内容:

id = 123456

但是,使用Fiddler和IE,当我们填充id文本框并单击“发送”按钮时,可以看到发送了以下内容:

userId = 123456&send =发送

最终结果是,按Enter键实际上无效。

在其他jsp页面上,例如,我们有:

<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="submitId" value="Submit"/>

servlet具有:

if (request.getParameter("submitId") != null && request.getParameter("submitId").trim().length() > 0) { ... }

使用Fiddler和IE,我们可以看到两种情况都发送了以下内容:

id = 123456&submitId =提交

因此,在我们看来,该行为仅在“提交”按钮未称为“提交”的表单上显示在IE上?

在Firefox 3.6上重新运行测试表明该行为是正确的,并且在两种情况下都是相同的。

有关让IE正常工作的任何建议?

(注意:我在SO中搜索了类似的问题,但与此问题相关的问题主要是与所有ASP相关!)。


阅读 198

收藏
2020-06-10

共1个答案

一尘不染

对于只有一个输入字段的表单,这确实是另一个IE异常。唯一可行的解​​决方法是添加第二个输入字段(!)。您可以使用CSS隐藏它。不,type="hidden"不会工作。

<input type="text" name="id" maxlength="20" />
<input type="text" style="display: none;" />
<input type="submit" name="send" value="Send"/>
2020-06-10