-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery-ajaxform.js
62 lines (49 loc) · 1.15 KB
/
jquery-ajaxform.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* jQuery ajaxform
*
* Version: 1.0.1
* Author: Yves Van Broekhoven
*/
(function($){
var _submit
, _handleResponse
, _handleError
, _successClb
;
_submit = function(event){
var ctx = $(this);
event.preventDefault();
$.ajax({
type: 'POST',
url: ctx.attr('action'),
data: ctx.serialize(),
success: function(data){
_handleResponse(data, ctx);
_successClb(ctx);
},
error: _handleError
});
};
_handleResponse = function(data, ctx){
var form = $("#" + ctx[0].id, data).first();
ctx.replaceWith(form);
};
_handleError = function(){
console.log("something went wrong baby");
};
_successClb = function(ctx){
var opts = $.fn.ajaxform.options;
if ($.isFunction(opts.successClb)) {
opts.successClb.call();
}
};
$.fn.ajaxform = function(options){
var _this = $(this);
$.fn.ajaxform.options = options ? $.extend({}, $.fn.ajaxform.defaults, options) : $.fn.ajaxform.defaults;
_this.live("submit", _submit);
return _this;
};
$.fn.ajaxform.defaults = {
successClb: false
};
}(jQuery));