JSP / servlet的/ IE组合不上的Enter键提交表单细节(JSP / servlet

2019-10-20 03:23发布

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

里面的JSP表单,我们有:

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

即一个文本框和一个“提交”按钮(名为Send)。

和servlet有:

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

使用提琴手和IE中,我们可以看到,当我们填充ID文本框,然后按Enter以下发送:

ID = 123456

然而,使用招和IE浏览器中,我们可以看到,当我们填充ID文本框,然后点击发送按钮,下面的发送:

用户id = 123456&发送=发送

最终的结果是,有效地击中回车键什么都不做。

在其他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) { ... }

使用招和IE,我们可以看到,下面是这两种情况下发送:

ID = 123456&submitId =提交

所以,在我们看来,该行为只展上的IE浏览器在“提交”按钮不叫“提交”的形式?

重新运行在Firefox 3.6测试表明行为是正确的和相同的两种情况。

为获得IE任何建议,以正常工作?

(注:我已搜查等了类似的问题,但这些问题涉及到这主要是所有的ASP相关的!)。

Answer 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"/>


Answer 2:

你为什么要检查request.getParameter("submitId")在你的JSP的时候其实submitId是你的提交按钮的名称?

在我的经验,我从来没有检查提交按钮的值。 我只用该按钮来触发表单提交,并会通常只感兴趣的其他形式的检索参数的值。

如果你要区分通过提交按钮的名称提交方法,你可能会想尝试添加一个“隐藏”的使用属性input type="hidden"



文章来源: JSP / servlet / IE combination doesn't submit form detail on Enter