在POST

时间:2016-05-25 02:34:01

标签: java jquery jsp spring-mvc spring-form

我正在使用带有标签的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">&nbsp;</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>        

2 个答案:

答案 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.. } }); }