-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhide_submit.js
More file actions
88 lines (79 loc) · 3.34 KB
/
hide_submit.js
File metadata and controls
88 lines (79 loc) · 3.34 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
(function ($, win) {
Drupal.behaviors.hideSubmitBlockit = {
attach: function(context) {
var timeoutId = null;
$('form', context).once('hideSubmitButton', function () {
var $form = $(this);
// Bind to input elements.
$('input.form-submit, button.form-submit', $form).click(function (e) {
var el = $(this);
el.after('<input type="hidden" name="' + el.attr('name') + '" value="' + el.attr('value') + '" />');
return true;
});
// Bind to form submit.
$('form', context).submit(function (e) {
var settings = Drupal.settings.hide_submit;
var $inp;
if (!e.isPropagationStopped()) {
if (settings.hide_submit_method == 'disable') {
$('input.form-submit, button.form-submit', $form).attr('disabled', 'disabled').each(function (i) {
var $button = $(this);
if (settings.hide_submit_css) {
$button.addClass(settings.hide_submit_css);
}
if (settings.hide_submit_abtext) {
$button.val($button.val() + ' ' + settings.hide_submit_abtext);
}
$inp = $button;
});
if ($inp && settings.hide_submit_atext) {
$inp.after('<span class="hide-submit-text">' + Drupal.checkPlain(settings.hide_submit_atext) + '</span>');
}
}
else {
var pdiv = '<div class="hide-submit-text' + (settings.hide_submit_hide_css ? ' ' + Drupal.checkPlain(settings.hide_submit_hide_css) + '"' : '') + '>' + Drupal.checkPlain(settings.hide_submit_hide_text) + '</div>';
if (settings.hide_submit_hide_fx) {
$('input.form-submit, button.form-submit', $form).addClass(settings.hide_submit_css).fadeOut(100).eq(0).after(pdiv);
$('input.form-submit, button.form-submit', $form).next().fadeIn(100);
}
else {
$('input.form-submit, button.form-submit', $form).addClass(settings.hide_submit_css).hide().eq(0).after(pdiv);
}
}
// Add a timeout to rerset the buttons (if needed).
if (settings.hide_submit_reset_time) {
timeoutId = window.setTimeout(function() {
hideSubmitResetButtons(null, $form);
}, settings.hide_submit_reset_time);
}
}
return true;
});
});
// Bind to clientsideValidationFormHasErrors to support clientside validation.
$(document).bind('clientsideValidationFormHasErrors', function(event, form) {
//hideSubmitResetButtons(event, form.form);
});
// Reset all buttons.
function hideSubmitResetButtons(event, form) {
// Clear timer.
window.clearTimeout(timeoutId);
timeoutId = null;
var settings = Drupal.settings.hide_submit;
if (settings.hide_submit_method == 'disable') {
$('input.' + Drupal.checkPlain(settings.hide_submit_css), form)
.removeClass(Drupal.checkPlain(settings.hide_submit_hide_css))
.removeAttr('disabled');
$('.hide-submit-text', form).remove();
}
else {
$('input.' + Drupal.checkPlain(settings.hide_submit_css), form)
.stop()
.removeClass(Drupal.checkPlain(settings.hide_submit_hide_css))
.show();
$('.hide-submit-text', form).remove();
}
}
}
};
})(jQuery, window);