Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Javascript 让SpringWebFlow使用IE7表单_Javascript_Spring_Internet Explorer_Spring Webflow 2 - Fatal编程技术网

Javascript 让SpringWebFlow使用IE7表单

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

这是SpringWebFlow的延续,在对SpringWebFlow进行了一些调试和SpringWebFlow中的事件处理之后,重新聚焦于此

我在SpringWebFlow和InternetExplorer7以及“兼容模式”下的IE11上遇到了问题。我已经验证了这个问题,我只是不知道如何解决它

我有一个Web流表单,表单上有多个按钮,这些按钮都使用一个连接,因为它们都是
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属性,因此我不确定您的建议。现在我明白了-是的,这应该可以工作。我提出了一个稍微大一点的解决方法,我在这里进行了记录: