I have a code which is ran after form submit. it is AJAX requests based.
Problem I have is in FormSubmit
function at Validation.done(function(){
i get error message saying Uncaught TypeError: Validation.done is not a function. But if you look FormValidate
function it returns deferredObject.promise
which is resolved or rejected in ajax done or fail.
So where is the problem??
When user submits form we run action:
$(document).ready(function() {
$("#NewOrder").submit(function (e){
e.preventDefault();
FormSubmit("NewOrder");
return false;
});
});
function FormSubmit(FormId)
{
var Validation = FormValidate(FormId);
Validation.done(function(){
//Do stuff if validation succeeded
});
}
FormValidate
function:
function FormValidate(FormId)
{
var deferredObject = $.Deferred();
var url = "../../ajax/FormValidate";
var data = {};
var promise = AjaxRequest(url, data);
promise.done(function(response) {
var resultArray = JSON.parse(response);
var FormEntity = $('#'+FormId).attr('entity');
if($.isEmptyObject(resultArray)){
deferredObject.resolve();
}
else{
$.each(resultArray, function( key, value ) {
$( "div#"+key+"_validation" ).text(value);
});
deferredObject.reject();
}
});
promise.fail(function(response) {
deferredObject.reject();
console.log(response);
});
return deferredObject.promise;
}
AjaxRequest
function:
function AjaxRequest(url, data)
{
var deferredObject = $.Deferred();
var request = $.ajax({
url: url,
type: "POST",
data: data,
});
request.done(function (response){
deferredObject.resolve(response);
});
request.fail(function (response){
deferredObject.reject(response);
});
return deferredObject.promise();
}