【问题标题】:jQuery and default struts 2 submit buttons in one formjQuery 和默认 struts 2 以一种形式提交按钮
【发布时间】:2013-09-22 14:39:37
【问题描述】:

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

这是我的 JSP 的代码 sn-p:

<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 并列出 divid="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 不行?

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

编辑:

当我创建简单的提交 JavaScriptfunction and assign its toonclick` 事件到最后一次提交时,它可以正常工作。

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

【问题讨论】:

  • 当您点击第二个(默认)提交而不点击 jQuery 插件提交时会发生什么?有用吗?
  • 不,它没有。只有当我完成删除 jQuery 提交时它才有效。即使我点击或不点击 jQuery 提交,struts 提交也不起作用。
  • struts2-jquery-plugin 的哪个版本?
  • struts2-jquery-plugin 版本。 3.6.1.

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这里的问题是 e.PreventDefault() 可以防止在表单文本字段内按 Enter 时正常提交。

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

    用普通的链接代替按钮怎么样?

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2018-01-19
      • 1970-01-01
      • 2019-10-11
      • 2019-01-16
      相关资源
      最近更新 更多