Javascript Struts2-jQueryAjax表单在jQuery对话框中发送数据(POST)2次
我有一个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() 这是一个完整的示例: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
<!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时,它发生了