我在struts中使用Form Submit有问题。
在按钮单击上设置隐藏变量的值,然后使用.submit()
jquery提交表单不允许在struts的同一页面中显示成功消息。
单击按钮时,在提交表单之前,我需要通过单击按钮设置隐藏变量,然后提交表单。 我可以使用以下代码提交表单,但不能在同一个弹出窗口中提交。
<div id="formResult" >
<s:form id="formId" name="form">
<s:hidden id="actionId" name="action"></s:hidden>
<table cellpadding="0" cellspacing="0" border="0" width="90%" >
<s:if test ="approve">
<tr>
<td>File is Approved!!</td>
<td><td>
</tr>
</s:if>
<s:elseif test ="rejectFile">
<tr>
<td>File is Rejected!</td>
<td><td>
</tr>
</s:elseif>
<s:else>
<tr>
<td width="30%"><b><s:text name="idLabel" /></b></td>
<td width="40%"><s:property value="Id"/></td>
</tr>
<tr>
<td><div style="height:5px"></div></td>
<td><div style="height:5px"></div></td>
</tr>
<tr>
</s:else>
<tr>
<td width="90%" colspan="2" align="right">
<s:if test="!approveFileSuccess">
<sj:a
id="approvefileId"
onclick="approveFunction();"
button="true"
targets="formResult">
Approve
</sj:a>
</s:if>
<s:if test="!rejectFileSuccess">
<sj:a
id="rejectfileId"
onclick="rejectFunction();"
targets="formResult"
button="true">
Reject
</sj:a>
</s:if>
</table>
</s:form>
</div>
JQUERY :
function approveFunction(){
$('#actionId').val("Approve");
document.formId.submit();
}
function rejectFunction(){
$('#actionId').val("Reject");
document.formId.submit();
}
单击document.formId.submit();
时,表单提交会将弹出窗口转到另一个页面。无法在同一页面中显示成功。
答案 0 :(得分:0)
最后,我对上面给出的相同代码做了一些修改。没有Ajax就可以完成.. !! 使用onClickTopics在提交表单之前完成工作,也不用刷新它:)
JSP
<sj:a
id="approvefileId"
formIds="approvefileform"
button="true"
targets="formResult"
onClickTopics="beforeApprove">
Approve
</sj:a>
JQUERY
$.subscribe('beforeApprove', function(event,data) { //before form submit on click functionality
$('#actionApproveRejectId').val("Approve"); //to set the hidden variable
});
它的工作完美!!!!!!