我正在使用带有标签的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>
答案 0 :(得分:1)
您需要使用原始表单提交中的数据重新呈现页面。
在您的情况下,这可能意味着您的表单应包含一些隐藏字段,以便您确定所在的选项卡,您的JSP需要能够理解此数据并使用它来选择适当的选项卡。
答案 1 :(得分:-2)
因为您提交的内容不是异步的,所以在您提交后,administrator.jsp会重置,因此会显示错误消息,因为此代码var allPromises;
$(document).on("click", "#submitTasks", function(e) {
//...
var tasks = $('#tasks').find('.box');
allPromises = [];
tasks.each(function() {
//.. somehow getTask
var req = saveTasks(task, trs, project_id);
allPromises.push(req);
});
$.when.apply(null, allPromises).done(function(){
// Do your things here,
// All save functions have done.
});
});
function saveTasks(task, trs, project_id) {
return $.ajax({
// ,,, your codes
success : function(data) {
// ...
trs.each(function() {
// ... Somehow get taskSupply
var req = saveTaskSupplies(taskSupply);
allPromises.push(req);
}
}
});
}
function saveTaskSupplies(taskSupply) {
return $.ajax({
// ... bla bla bla
success : function(data) {
// Whatever..
}
});
}