不要在 POST 时清除表单内容
Do not clear form content upon POST
我正在使用带有选项卡的 Spring 表单,每个选项卡都有一个表单。
问题是
1)表单提交后,显示错误信息,但表单内容被清除,这是不应该发生的
2)提交表单后,控件立即转到默认选项卡,这是我的第一个选项卡。我希望控件在交易后保留在当前选项卡上,而不是转到默认选项卡。
这是我第一次使用 Spring MVC,JSP,jQuery。如果我必须进行任何更改,请告诉我。
administrator.jsp

下面是“管理用户”选项卡功能的代码。
jQuery:
$(document).ready(function() {
$('#btnManage').click(function() {
if($.trim($('#userId').val()) == ''){
$('#area5').html("User Id is a required field.");
}else if($.trim($('#region').val()) == 'NONE'){
$('#area5').html("Region is a required field.");
}else{
$('#manageUserForm').submit();
}
});
$('#btnCancel5').click(function(e) {
$('#manageUserForm').trigger("reset");
$('#area5').html("");
});
});
administrator.jsp:
<div id="tab5" class="tab">
<div class="devices" >
<form:form method="post" id="manageUserForm" modelAttribute="adminUser" action="/DeviceManager/admin/manageUser">
<div align=center class="message" id="area5">${serverError5}</div>
<div>
<div class="plLabelSearch">User Id:</div>
<div class="plinput"><form:input path="userId" type="text" size="29"/></div>
</div>
<div>
<div class="plLabelSearch">Region:</div>
<div class="plselect">
<form:select path="region">
<form:option value="NONE" label="------- Select One -------" />
<form:option value="A" label="A"/>
<form:options items="${regionList}"/>
</form:select>
</div>
</div>
<br>
<br>
<div>
<div class="plLabelSearch"> </div>
<div class="plinput"><a id="btnManage" class="abutton">OK</a></div>
<div class="plinput"><a id="btnCancel5" class="abutton">Cancel</a></div>
</div>
</form:form>
</div>
</div>
因为你提交不是异步的,提交后,administrator.jsp被重置,所以显示错误信息,由于这段代码<div align=center class="message" id="area5">${serverError5}</div>
您需要使用原始表单提交的数据重新呈现页面。
在您的情况下,这可能意味着您的表单应该包含一些隐藏字段,以允许您确定您所在的选项卡,您的 JSP 将需要能够理解此数据并将其用于 select 相应的选项卡。
我正在使用带有选项卡的 Spring 表单,每个选项卡都有一个表单。 问题是
1)表单提交后,显示错误信息,但表单内容被清除,这是不应该发生的
2)提交表单后,控件立即转到默认选项卡,这是我的第一个选项卡。我希望控件在交易后保留在当前选项卡上,而不是转到默认选项卡。
这是我第一次使用 Spring MVC,JSP,jQuery。如果我必须进行任何更改,请告诉我。
administrator.jsp
下面是“管理用户”选项卡功能的代码。
jQuery:
$(document).ready(function() {
$('#btnManage').click(function() {
if($.trim($('#userId').val()) == ''){
$('#area5').html("User Id is a required field.");
}else if($.trim($('#region').val()) == 'NONE'){
$('#area5').html("Region is a required field.");
}else{
$('#manageUserForm').submit();
}
});
$('#btnCancel5').click(function(e) {
$('#manageUserForm').trigger("reset");
$('#area5').html("");
});
});
administrator.jsp:
<div id="tab5" class="tab">
<div class="devices" >
<form:form method="post" id="manageUserForm" modelAttribute="adminUser" action="/DeviceManager/admin/manageUser">
<div align=center class="message" id="area5">${serverError5}</div>
<div>
<div class="plLabelSearch">User Id:</div>
<div class="plinput"><form:input path="userId" type="text" size="29"/></div>
</div>
<div>
<div class="plLabelSearch">Region:</div>
<div class="plselect">
<form:select path="region">
<form:option value="NONE" label="------- Select One -------" />
<form:option value="A" label="A"/>
<form:options items="${regionList}"/>
</form:select>
</div>
</div>
<br>
<br>
<div>
<div class="plLabelSearch"> </div>
<div class="plinput"><a id="btnManage" class="abutton">OK</a></div>
<div class="plinput"><a id="btnCancel5" class="abutton">Cancel</a></div>
</div>
</form:form>
</div>
</div>
因为你提交不是异步的,提交后,administrator.jsp被重置,所以显示错误信息,由于这段代码<div align=center class="message" id="area5">${serverError5}</div>
您需要使用原始表单提交的数据重新呈现页面。
在您的情况下,这可能意味着您的表单应该包含一些隐藏字段,以允许您确定您所在的选项卡,您的 JSP 将需要能够理解此数据并将其用于 select 相应的选项卡。