Reputation: 35194
(function ($) {
$.fn.sendAuditToHandler = function (options) {
var defaultSettings = {
'url': '../SentinelOperationsUI/GenericHandler.ashx'
};
var objectToSend = {};
var opts = $.extend(defaultSettings, options);
$(this).find('input[type=text], select').each(function (i, val) {
var objectKey = $(val).attr('class');
var objectValue = $(val).val();
objectToSend[objectKey] = objectValue;
});
objectToSend = JSON.stringify(objectToSend);
$.ajax({
url: opts.url,
data: { 'AuditObject': objectToSend },
success: function (data) {
}
});
return this;
};
})(jQuery);
What i would like to use is something like to make use of the ajax success function in my function call. Something like
sendAuditToHandler({ /* some options */ }, success: function() { //ajax success callback function }...
Upvotes: 0
Views: 988
Reputation: 294
You can call your success function inside the ajax call
$.ajax({
url: opts.url,
data: { 'AuditObject': objectToSend },
success: function (data) {
options.success();
}
});
Upvotes: 1
Reputation: 160181
Either pass it in as a normal parameter, or as part of the existing options hash.
$.fn.sendAuditToHandler = function (options, onSuccess) {
// etc.
$.ajax({
url: opts.url,
data: { 'AuditObject': objectToSend },
success: onSuccess
});
Then when you call it:
sendAuditToHandler({ /* some options */ }, function(data) {
// Whatever you want.
alert("ohai");
});
Or as part of the options:
$.ajax({
url: opts.url,
data: { 'AuditObject': objectToSend },
success: opts.onSuccess
});
And when you call it:
sendAuditToHandler({
url: "the url",
// other options, then the method.
onSuccess: function(data) {
// Whatever you want.
alert("ohai");
}
});
Upvotes: 1