2016-09-29 1 views
0

Nach Jsp-Code funktioniert im Frontend mit Form, aber ich wollte herausfinden, wie Sie die Aktion mit Jquery aufrufen. Kurz gesagt, ich möchte keine Aktion verwenden und direkt über jquery aufrufen.Rufen Sie Spring MVC mit Jquery anstelle von Formular

<form:form id="uploadCSVForm" modelAttribute="PeopleFileUpload" method="post" enctype="multipart/form-data" action="/admin/institutions/${mrceuser.person.institution.id}/uploadCsv"> 
     <p> 
      <form:label for="fileData" path="fileData">File</form:label><br/> 
      <form:input path="fileData" type="file"/> 
     </p> 
     <p> 
      <input type="button" value="Save" onclick="InstitutionDialog.prepareForSubmit('#uploadCSVForm');" /> 
      <input type="button" value="Cancel" onclick="InstitutionDialog.hide();return false;"/> 
     </p> 
     </form:form> 

Ich habe das gleiche

ChangeDialog.noInputSubmit(ChangeDialog.InstitutionsProperty, "Uploaded CSV for " + jQuery('input#name').val(), 
     function() {jQuery('#uploadCSVForm').submit()}); 

Wo ChangeDialog.noInputSubmit sieht wie folgt aus erreicht:

ChangeDialog.noInputSubmit = function (changeArea, message, callback) { 
    ChangeDialog.changeArea = changeArea.id; 
    var valueMap = ChangeDialog.getValueMap(); 
    valueMap.description = message; 
    jQuery.ajax({ 
     url:RootPath.getPath()+'/admin/changes/', 
     type:'POST', 
     data:valueMap, 
     success:callback, 
     error:ChangeDialog.handleError 
    }); 
    return false; 
}; 

Antwort

1

Wenn Sie das Formular mit Jquery nur einreichen möchten, dann müssen Sie Verhindern Sie zuerst das Submit-Ereignis und dann das Submit-Ereignis bei Erfolg wie folgt:

$('#btnSubmit').click(function (e) { 
e.preventDefault(); // prevent default action of submit button 
var element = this;  
ajax({ 
    url:RootPath.getPath()+'/admin/changes/', 
    type:'POST', 
    data:valueMap, 
    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
    if (data.status == "Success") { 
     alert("Done"); 
     $(element).closest("form").submit(); // submit form 
    } else { 
     alert("Error occurs on the Database level!"); 
    } 
    }, 
    error:ChangeDialog.handleError 
}); 
}); 

Sie können den Methodennamen ändern, Parameter nach Ihrer Anforderung, aber die Kernlogik sollte gleich sein.

Verwandte Themen