如何在不提交表单的情况下使用struts2提交标签作为按钮?
Posted
技术标签:
【中文标题】如何在不提交表单的情况下使用struts2提交标签作为按钮?【英文标题】:How to use struts2 submit tag as button without submitting the form? 【发布时间】:2013-12-11 03:46:37 【问题描述】:我在我的应用程序中使用 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" align="center">
<tr>
<td >
<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 处理它,那么请帮忙。
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:你试过preventDefault()
吗?
$("btnSave").click(function(e)
e.preventDefault();
//..rest of the code
);
【讨论】:
【参考方案2】:如果您使用s:submit
标记,则呈现的HTML
输出为input
或button
标记,但类型为submit
,image
类型除外。您可以使用代码执行不提交表单的javascript onclick事件。
<s:submit type="button" onclick="return false;"/>
【讨论】:
点击我想像上面的代码一样运行 JS 代码:**$("btnSave").click(function() **!所以如果我把 onclick="return false;"我的 JS 代码不会被执行。我是不是哪里错了???以上是关于如何在不提交表单的情况下使用struts2提交标签作为按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Django、Ajax、jQuery 在不刷新页面的情况下提交表单?
在不使用 JavaScript 的情况下,如何在选择字段集中时使 Enter 键提交表单?