gpt4 book ai didi

javascript - 让 Spring Web Flow 与 IE 7 表单配合使用

转载 作者:行者123 更新时间:2023-12-03 12:20:36 25 4
gpt4 key购买 nike

这是 this question 的延续,在对 Spring Web Flow 进行一些调试以及 Spring Web Flow 中的事件处理后重新关注。

我在使用 Spring Web Flow 和 Internet Explorer 7 以及“兼容模式”下的 IE 11 时遇到问题。我已经验证了这个问题,只是不知道如何解决。

我有一个 Web Flow 表单,上面有多个按钮,这些按钮都使用 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>

这是应该发生的情况:根据单击的按钮,提交表单时会触发不同的 Web Flow 事件。例如,标记为“删除帐户”的按钮应触发名为“_eventId_deleteAccount”的事件。标记为“创建帐户”的按钮应触发名为“_eventId_createAccount”的事件。

这适用于 IE 8 至 11、Chrome 和 Firefox。但是,在“兼容模式”下的 IE 7 和 IE 11 上,页面上的每个按钮都会与表单一起提交。这意味着表单带有多个“_eventId_xxx”请求参数,并且由于第一个参数始终是“_eventId_createAccount”,因此页面上的每个按钮都会在表单上创建另一个帐户。

有没有简单的解决办法? (不幸的是,“不使用 Web Flow”或“不使用 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>

这样,您可以确保当用户单击输入按钮时,会生成默认的“继续”事件,您需要自定义该事件的处理方式。根据每个提供的按钮单击,相应的事件(请参阅将其作为参数传递给 javascript 函数)由提到的 javascript 函数设置。

关于javascript - 让 Spring Web Flow 与 IE 7 表单配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com