Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP/servlet/IE组合不';t在输入时提交表单详细信息_Java_Html_Internet Explorer_Jsp - Fatal编程技术网

Java JSP/servlet/IE组合不';t在输入时提交表单详细信息

Java JSP/servlet/IE组合不';t在输入时提交表单详细信息,java,html,internet-explorer,jsp,Java,Html,Internet Explorer,Jsp,使用IE7、JDK1.6和Sun Web服务器7 在jsp表单中,我们有: <input type="text" name="id" maxlength="20" /> <input ... type="submit" name="send" value="Send"/> 使用和IE,我们可以看到在填充id文本框并按Enter键时发送以下内容: id=123456 但是,使用Fiddler和IE,我们可以看到在填充id文本框并单击Send按钮时发送了以下内容: user

使用IE7、JDK1.6和Sun Web服务器7

在jsp表单中,我们有:

<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="send" value="Send"/>
使用和IE,我们可以看到在填充id文本框并按Enter键时发送以下内容:

id=123456

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

userId=123456&send=send

最终的结果是,按Enter键实际上没有任何作用

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

<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="submitId" value="Submit"/>
使用Fiddler和IE,我们可以看到两种情况下都发送了以下信息:

id=123456&submitId=Submit

因此,在我们看来,这种行为只在IE上显示,而“提交”按钮不被称为“提交”的表单

在Firefox3.6上重新运行测试表明,这两种情况下的行为都是正确的

有没有让IE正常工作的建议


(注意:我搜索过类似的问题,但与此相关的问题主要都与ASP有关!)

为什么要在JSP中检查
request.getParameter(“submitId”)
,而实际上submitId是提交按钮的名称

根据我的经验,我从未检查过submit按钮的值。我只使用该按钮触发表单提交,通常只对检索其他表单参数的值感兴趣


如果您想通过提交按钮的名称来区分提交方法,您可能想尝试使用
input type=“hidden”

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

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


Uhm,通常的做法是检查请求参数中是否存在按钮名称,以区分按下的按钮。您确实不想将隐藏的输入元素与Javascript结合使用来区分它。如果JS被禁用,表单将被破坏。谢谢BalusC。我并不是真的建议在JS中使用隐藏的输入。我考虑的更多是用服务器端脚本填充值。但从你的答案来看,这似乎是IE的一个缺陷,所以请不要理会我之前的建议Wrt Javascript:我看不到其他方法来区分只使用
input type=“hidden”
element:)按下的按钮。将来,当遇到特定于浏览器的问题(即,在浏览器X中工作,但在浏览器Y中不工作)时,这几乎是纯客户端问题。第一步是将服务器端技术从故事中完全排除,只使用“普通”HTML文件。如果省略表单操作和方法,它将默认提交给self,请求参数将在URL中显示为查询字符串。更容易调试:)@nzpcmad:plz检查表单是否有多个“input type='submit'”。当同一表单中有多个input type=submit时,按enter键使用第一个input type=submit提交表单,除非另一个input type=submit具有焦点。当另一个输入类型=提交有焦点时,按enter键使用该输入类型=提交提交提交表单。@Shashi Bhushan:否-肯定只有一个“输入类型=”提交'。嗯,也许你误解了我的评论的全部要点,或者错过了“调试”一词:o
if (request.getParameter("submitId") != null && request.getParameter("submitId").trim().length() > 0) { ... }
<input type="text" name="id" maxlength="20" />
<input type="text" style="display: none;" />
<input type="submit" name="send" value="Send"/>