Javascript 让SpringWebFlow使用IE7表单
这是SpringWebFlow的延续,在对SpringWebFlow进行了一些调试和SpringWebFlow中的事件处理之后,重新聚焦于此 我在SpringWebFlow和InternetExplorer7以及“兼容模式”下的IE11上遇到了问题。我已经验证了这个问题,我只是不知道如何解决它 我有一个Web流表单,表单上有多个按钮,这些按钮都使用一个连接,因为它们都是Javascript 让SpringWebFlow使用IE7表单,javascript,spring,internet-explorer,spring-webflow-2,Javascript,Spring,Internet Explorer,Spring Webflow 2,这是SpringWebFlow的延续,在对SpringWebFlow进行了一些调试和SpringWebFlow中的事件处理之后,重新聚焦于此 我在SpringWebFlow和InternetExplorer7以及“兼容模式”下的IE11上遇到了问题。我已经验证了这个问题,我只是不知道如何解决它 我有一个Web流表单,表单上有多个按钮,这些按钮都使用一个连接,因为它们都是type='button',而不是type='submit': <button id="addCurrentAccount
type='button'
,而不是type='submit'
:
<button id="addCurrentAccount" name="_eventId_addCurrentAccount" type="button" value="addCurrentAccount" class="buttonActivity add">
<span>Add Current Account</span>
</button>
加经常账户
这就是应该发生的情况:根据单击的按钮,提交表单时会触发不同的Web流事件。例如,标记为“Delete Account”的按钮应触发名为“\u eventId\u deleteAccount”的事件。标记为“创建帐户”的按钮应触发名为“\u eventId\u CreateCount”的事件
这适用于IE8到11、Chrome和Firefox。但是,在“兼容模式”下的IE 7和IE 11上,页面上的每个按钮都会与表单一起提交。这意味着表单中有几个“\u eventId\u xxx”请求参数,并且由于第一个参数始终是“\u eventId\u createAccount”,因此页面上的每个按钮都会在表单上创建另一个帐户
有没有简单的解决方法?(不幸的是,“不使用Web流”或“不使用IE 7”不是选项。)尝试在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按钮时,会生成一个默认的“Continue”事件,您需要自定义该事件的处理方式。根据提供的每个按钮点击,相应的事件(请参见将此作为参数传递给javascript函数)由所述javascript函数设置。您能解释一下您的意思吗?据我所知,元素上没有可设置的实际_eventId属性,因此我不确定您的建议。现在我明白了-是的,这应该可以工作。我提出了一个稍微大一点的解决方法,我在这里进行了记录: