Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 Struts2-jQueryAjax表单在jQuery对话框中发送数据(POST)2次_Javascript_Jquery_Struts2 - Fatal编程技术网

Javascript Struts2-jQueryAjax表单在jQuery对话框中发送数据(POST)2次

Javascript Struts2-jQueryAjax表单在jQuery对话框中发送数据(POST)2次,javascript,jquery,struts2,Javascript,Jquery,Struts2,我有一个web应用程序(J2EE+apache+struts2+jsp+struts2 jQuery插件) 我的问题是,当我想用struts2 jQuery ajax方法在jQuery对话框中提交表单时,它会快速发送表单数据两次!!但是当我把它放在对话框外时,它工作得很好 -libs: Struts2:Struts2-core-2.1.8.1.jar Struts2 jQuery插件:Struts2-jQuery-Plugin-3.1.1.jar() 这是一个完整的示例: <!DOCTYP

我有一个web应用程序(J2EE+apache+struts2+jsp+struts2 jQuery插件)

我的问题是,当我想用struts2 jQuery ajax方法在jQuery对话框中提交表单时,它会快速发送表单数据两次!!但是当我把它放在对话框外时,它工作得很好

-libs:

Struts2:Struts2-core-2.1.8.1.jar

Struts2 jQuery插件:Struts2-jQuery-Plugin-3.1.1.jar()

这是一个完整的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <sj:head jqueryui="true" jquerytheme="orange" customBasepath="css" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <!-- JQuery --><script type="text/javascript" src="js/jquery-ui.custom.min.js"></script>

</head>

<body>

    <!-- ui-dialog-ChangePass -->
    <div id="dialogChangePassword" title="Change Password" style="display:none;overflow:hidden;">

        <sj:div id="actionMessageResult">
        </sj:div>

        <s:form id="frmChangePassword" action="changePassword">
            <sj:submit targets="actionMessageResult"/>
        </s:form>

    </div>

<script type="text/javascript">
    $('#dialogChangePassword').dialog({
        autoOpen: true,
        buttons: {
            "Cancel": function() {
                $(this).dialog("close");
            },
            "Change": function() { 
                    document.getElementById('submitChangePass').click();
            }
        }
    });
</script>

</body>
</html>

$('#dialogChangePassword')。对话框({
自动打开:对,
按钮:{
“取消”:函数(){
$(此).dialog(“关闭”);
},
“更改”:函数(){
document.getElementById('submitChangePass')。单击();
}
}
});
-FireBug的结果是:

另外,当我直接点击sj:submit按钮时,这个问题再次发生。


更新:我简化了示例并将整个页面放在一起。尝试使用主题

<s:form id="frmChangePassword" action="changePassword">
     <sj:submit targets="actionMessageResult" listenTopics="submitThisForm"/>
 </s:form> 

<script type="text/javascript">
      $('#dialogChangePassword').dialog({
          autoOpen: true,
          buttons: {
              "Cancel": function() {
                  $(this).dialog("close");
              },
              "Change": function() {
                       $.publish("submitThisForm")
              }
          }
      });
</script>  

$('#dialogChangePassword')。对话框({
自动打开:对,
按钮:{
“取消”:函数(){
$(此).dialog(“关闭”);
},
“更改”:函数(){
$.publish(“提交此表单”)
}
}
});

为什么不使用
标记?

能否将源代码缩减为一页并发布整个页面,以便我们可以重现问题。@Quaternion:当然!我做到了,我把“struts2-jquery-plugin-3.1.1.jar”改为“struts2-jquery-plugin-2.3.1.jar”,效果很好!!!谢谢,它工作正常。但是问题并没有完全解决,当我直接点击sj:submit时,它发生了