我的页面设计是这样的,我必须使用两个单击提交的表单,然后保存到数据库,反之亦然。 我在带有Struts2 Framework的JSP页面上使用它 我尝试过Ajax解决方案,但它们对我不起作用。
这是我的脚本(更新):
$("#visitType").buttonset();
$("#patientCondition").buttonset();
$("input[type=submit], a, button").button().click(function(event) {
event.preventDefault();
var inputs=$('#visitType,#patientCondition ').find(':input').not(this);
var form_data={};
inputs.each(function(){
form_data[this.name]=$(this).val();
});
$.post('patientSoapAll', form_data, function(response){
});
});
我的表单1:
<s:form action="PatientSoapAll" method="post">
<div id="visitType">
<input type="radio" id="I" value="I" <s:if test='pSB.rOS == "I"'>checked</s:if> name="pSB.rOS" /><label for="I">I V</label>
<input type="radio" id="R" value="R"<s:if test='pSB.rOS == "R"'>checked</s:if>name="pSB.rOS" /><label for="R">Regular Visit</label>
<input type="radio" id="P/N" <s:if test='pSB.rOS == "P/N"'>checked</s:if>name="pSB.rOS" /><label for="D/N">Re- Evaluation</label>
<input type="radio" id="D/N"<s:if test='pSB.rOS == "D/N"'>checked</s:if> name="pSB.rOS" /><label for="
P/N">Discharge</label>
</div>
</s:form>
我的表2:
<s:form action="PatientSoapAll" method="post">
<div id="patientCondition">
<input type="radio" id="new" value="n"<s:if test='pSB.r2 == "n"'>checked</s:if> name="pSB.r2" /> <label for="new">New</label>
<input type="radio" id="noChange" value="nC" <s:if test='pSB.r2 == "nC"'>checked</s:if> name="pSB.r2" /><label for="noChange">No Change</label>
<input type="radio" id="progressing" value="p"<s:if test='pSB.r2 == "p"'>checked</s:if> name="pSB.r2" /><label for="progressing">Progressing</label>
<input type="radio" id="notProgressing" value="nP" <s:if test='pSB.r2 == "nP"'>checked</s:if> name="pSB.r2" /><label for="notProgressing">Not Progressing</label>
</div>
</s:form>
这是我更新的已提交按钮。从Div中移除并放置在桌子内。
<tr>
<td></td>
<td><input type="submit" value="Save Note" /></td>
</tr>
我正在使用struts 2,我想将此提交按钮重定向到一个动作patientSoapAll,我使用.do的自定义扩展名而不是.action(默认情况下)。请告诉我如何将此提交按钮重定向到struts2中的相应操作类。
答案 0 :(得分:1)
您可以使用jQuery .serialize
来执行您想要的操作。为表单提供一些类,然后使用它来选择表单并调用serialize以获取标准URL编码表示法中的字符串。之后,您可以使用一些AJAX方法将其发布到您的操作中。
$(function() {
$("#saveNoteButton").click(function() {
alert($(".forms").serialize());
});
});
答案 1 :(得分:1)
您可以使用Struts2 jQuery提交多个表单
<sj:submit formIds="visitType,patientCondition" targets="result" value="Submit" />
formIds:
以逗号分隔的表单ID列表,在单击此元素时,在提交期间序列化所有字段(如果多个表单具有重叠的元素名称,则它将是不确定的将被使用)
答案 2 :(得分:1)
找到一个简单的解决方案。
的javascript:
submitForms = function() {
$('#form2 :input').not(':submit').clone().hide().appendTo('#form1');
document.getElementById("form1").submit();
};
提交按钮:
<input type="button" value="Save Note" onclick="submitForms()" />