使用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"/>
if (request.getParameter("submitId") != null && request.getParameter("submitId").trim().length() > 0) { ... }
使用Fiddler和IE,我们可以看到两种情况都发送了以下内容:
id = 123456&submitId =提交
因此,在我们看来,该行为仅在“提交”按钮未称为“提交”的表单上显示在IE上?
在Firefox 3.6上重新运行测试表明该行为是正确的,并且在两种情况下都是相同的。
有关让IE正常工作的任何建议?
(注意:我在SO中搜索了类似的问题,但与此问题相关的问题主要是与所有ASP相关!)。
对于只有一个输入字段的表单,这确实是另一个IE异常。唯一可行的解决方法是添加第二个输入字段(!)。您可以使用CSS隐藏它。不,type="hidden"不会工作。
type="hidden"
<input type="text" name="id" maxlength="20" /> <input type="text" style="display: none;" /> <input type="submit" name="send" value="Send"/>