这是this question的延续,在对Spring和Spring中事件的处理进行了一些调试之后,重新聚焦于此。
我遇到了Spring和Internet 7的问题,还有IE11在“兼容性模式”中的问题。我已经核实过这个问题了,只是不知道怎么解决。
我有一个Web表单,上面有多个按钮,它们都是用Javascript onclick() handler连接的,因为它们都是type='button'而不是type='submit'
<button id="addCurrentAccount" name="_eventId_addCurrentAccount" type="button" value="addCurrentAccount" class="buttonActivity add">
<span>Add Current Account</span>
</button>--这就是应该发生的事情:根据单击的按钮,在提交表单时会触发不同的流事件。例如,一个标记为"Delete Account“的按钮应该会触发一个名为"_eventId_deleteAccount”的事件。一个标记为"Create“的按钮应该会触发一个名为"_eventId_createAccount”的事件。
这可以在IE8到11,Chrome和Firefox上工作。然而,在IE7和IE11上,在“兼容模式”下,页面上的每个按钮都与表单一起提交。这意味着表单中有几个"_eventId_xxx“请求参数,而且由于第一个参数总是"_eventId_createAccount",所以页面上的每个按钮都会在表单上创建另一个帐户。
有简单的解决办法吗?(不幸的是,“不要使用Web流”或“不要使用IE7”不是选项。)
发布于 2014-06-30 14:01:24
在javascript函数中指定独占的eventId如下:
function includeEvent(eventId){
document.getElementById("yourForm")._eventId.value = eventId;
document.getElementById("yourForm").submit();
}将_eventId作为隐藏类型包括:
<input type="hidden" name="_eventId" value="Continue"/>
<button id="addCurrentAccount" name="addCurrentAccount" type="button" value="addCurrentAccount" class="buttonActivity add" onclick="javascript:includeEvent('addCurrentAccount')">
<span>Add Current Account</span>
</button>通过这种方式,您可以确保当用户单击enter按钮时,会生成默认的“继续”事件,您需要自定义如何处理该事件。根据每个提供的按钮单击,相应的事件(请参阅将此参数传递给javascript函数)由上述javascript函数设置。
https://stackoverflow.com/questions/24461867
复制相似问题