web-dev-qa-db-ja.com

フォームを送信せずにstruts2送信タグをボタンとして使用するにはどうすればよいですか?

アプリケーションでStruts2フレームワークを使用していますが、JSPページにボタンが1つあります。あれは

<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でそれを処理するアイデアを持っている人は誰でも助けてください。

あなたの助けは本当にありがたいです。

9

s:submitタグを使用している場合、レンダリングされたHTML出力はinputまたはbuttonタグのいずれかですが、タイプはsubmitタイプを除いてimageです。このコードを使用して、フォームを送信しないjavascriptonclickイベントを実行できます。

<s:submit type="button" onclick="return false;"/>
10
Roman C

preventDefault()を試しましたか?

$("btnSave").click(function(e){
    e.preventDefault();   
    //..rest of the code
});
3
anu