小编典典

如何在不提交表单的情况下将struts2提交标签用作按钮?

jsp

我在我的应用程序中使用Struts2框架,我的JSP页面上有一个按钮。那是

<s:submit type="button" name="btnSave" />

现在,我希望此按钮的行为与常规HTML按钮类型相同,不应提交表单并在onclick事件发生时执行脚本功能。该函数使用Ajax提交表单。

但是发生的事情是Struts2将其转换为

<input type="submit" id="add_btnSave" name="btnSave" value="Save"/>

我的表格已提交。

1)如果我使用HTML按钮标记,它将使GUI混乱。我的表单主题是Ajax。

这是head带有脚本的标签

<head>
<s:head theme="ajax"/>
<script type="text/javascript">

$("btnSave").click(function(){
alert("aaa");
$.ajax({
url:
type:"POST",
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('Error ' + textStatus);
alert(errorThrown);
alert(XMLHttpRequest.responseText);
},
success: function(){
alert('SUCCESS');
}
});
});
</script>
</head>

我的body标签是关注者:

<body>
<table border="1" width="80%" align="center">
<tr>
<td width="100%">
<s:tabbedPanel id="EmpDetail" useSelectedTabCookie="true">
<s:div id="one" label="Emp Reg." theme="ajax" tabindex="0" labelposition="top">
<center>
<s:form name="frmEmpReg" namespace="/" method="post">
EMPLOYEE REGISTRATIOM TAB<br>
<s:actionmessage />
<input type="hidden" name="empbean.id" value="<s:property value="empbean.id"/>"/>
<s:textfield label="Employee First Name" name="empbean.firstName"></s:textfield>
<s:textfield label="Employee Middle Name" name="empbean.middleName"></s:textfield>
<s:textfield label="Employee Last Name" name="empbean.lastName"></s:textfield>
<s:textfield label="Address" name="empbean.address"></s:textfield>
<s:textfield label="State" name="empbean.state"></s:textfield>
<s:textfield label="Employee Designation" name="empbean.designation"></s:textfield>
<s:submit name="btnSave" type="submit" value="Save" align="center"/>
</s:form>
</center>
</s:div>
<s:div>
..
..
Other Tabs
</s:div>
</s:tabbedPanel>
</td>
</tr>
</table>
</body>

任何人都有用Struts2处理它的想法,请帮忙。

您的帮助将不胜感激。


阅读 260

收藏
2020-06-08

共1个答案

小编典典

如果使用s:submit标签,则呈现的HTML输出为inputbutton标签,但类型submit除外image。您可以使用代码执行不提交表单的javascript
onclick事件。

<s:submit type="button" onclick="return false;"/>
2020-06-08