jQuery和默认struts 2以一种形式提交按钮

时间:2013-09-22 14:39:37

标签: javascript jsp struts2 struts2-jquery double-submit-problem

我在提交表单时遇到问题,其中包含普通和jQuery submit按钮。

这是我的JSP的代码片段:

<sj:head loadAtOnce="true"/>

<s:form id="createModReadProjectForm" action="createProject" cssClass="internalForm" autocomplete="off">
    <s:token/>

    <s:textfield name="collName" cssClass="textField internal" cssErrorClass="textFieldError internal" />
    <div id="assignCollaborators">

    </div>

    <s:url action="assignCollabolator" id="assignCollaboratorUrl"/>
    <sj:submit key="labels.button.addColl" targets="assignCollaborators" 
            id="assignCollButton" formIds="createModReadProjectForm" cssClass="button small"
            href="%{assignCollaboratorUrl}"/>

    <s:submit />
</s:form>

jQuery submit按钮只会将输入的文本字段用户名添加到ArrayList,并在div中使用id="assignCollaborators"列出所有已保存的用户,这样可以正常使用。

呈现jQuery submit

jQuery(document).ready(function () {
     var options_assignCollButton = {};
     options_assignCollButton.jqueryaction = "button";
     options_assignCollButton.id = "assignCollButton";
     options_assignCollButton.name = "labels.button.addColl";
     options_assignCollButton.targets = "assignCollaborators";
     options_assignCollButton.href = "/CloudUML/assignCollabolator.action";
     options_assignCollButton.formids = "createModReadProjectForm";

     jQuery.struts2_jquery.bind(jQuery('#assignCollButton'),options_assignCollButton);
});

现在,当我想提交表单时,使用最后一个提交按钮,没有任何反应。没有Java或JavaScript错误。什么可以导致这种奇怪的行为?为什么jQuery submit正常工作,而正常的Struts2 s:submit不是?

我保证所有需要的操作和属性字段都已定义。

编辑:

当我在上次提交时创建了简单的提交JavaScript function and assign its to onclick`事件时,它可以正常运行。

function submitFunc() {
        document.forms['createModReadProjectForm'].submit();
    }

2 个答案:

答案 0 :(得分:1)

看起来像是struts2-jquery-plugin中的一个错误:http://code.google.com/p/struts2-jquery/issues/detail?id=931

它应该适用于该插件的3.3.3版本。

答案 1 :(得分:1)

这里的问题是e.PreventDefault(),用于阻止在表单文本字段内输入正常提交。

请参阅: http://code.google.com/p/struts2-jquery/source/browse/trunk/struts2-jquery-plugin/src/main/resources/template/js/struts2/jquery.struts2.js#947

使用普通链接而不是按钮怎么样?