diff --git a/js/auto-submit.js b/js/auto-submit.js index f84db23..a91f933 100644 --- a/js/auto-submit.js +++ b/js/auto-submit.js @@ -28,47 +28,50 @@ Drupal.behaviors.CToolsAutoSubmit = { attach: function() { - var timeoutID = 0; // Bind to any select widgets that will be auto submitted. - $('select.ctools-auto-submit:not(.ctools-auto-submit-processed),.ctools-auto-submit-full-form *[type!=input]:not(.ctools-auto-submit-processed)') - .addClass('.ctools-auto-submit-processed') + $('.ctools-auto-submit-full-form input[type!=text], input[type!=text].ctools-auto-submit, .ctools-auto-submit-full-form select, select.ctools-auto-submit') + .not('.ctools-auto-submit-processed') + .addClass('ctools-auto-submit-processed') .change(function() { $(this.form).find('.ctools-auto-submit-click').click(); }); // Bind to any textfield widgets that will be auto submitted. - $('input[type=text].ctools-auto-submit:not(.ctools-auto-submit-processed),.ctools-auto-submit-full-form input[type=text]:not(.ctools-auto-submit-processed)') - .addClass('.ctools-auto-submit-processed') - .keyup(function(e) { - var form = this.form; - switch (e.keyCode) { - case 16: // shift - case 17: // ctrl - case 18: // alt - case 20: // caps lock - case 33: // page up - case 34: // page down - case 35: // end - case 36: // home - case 37: // left arrow - case 38: // up arrow - case 39: // right arrow - case 40: // down arrow - case 9: // tab - case 13: // enter - case 27: // esc - return false; - default: - if (!$(form).hasClass('ctools-ajaxing')) { - if ((timeoutID)) { - clearTimeout(timeoutID); + $('input:text.ctools-auto-submit, .ctools-auto-submit-full-form input:text') + .not('.ctools-auto-submit-processed') + .addClass('ctools-auto-submit-processed') + .each(function () { + var timeoutID = 0; + $(this).keyup(function(e) { + var form = this.form; + switch (e.keyCode) { + case 16: // shift + case 17: // ctrl + case 18: // alt + case 20: // caps lock + case 33: // page up + case 34: // page down + case 35: // end + case 36: // home + case 37: // left arrow + case 38: // up arrow + case 39: // right arrow + case 40: // down arrow + case 9: // tab + case 13: // enter + case 27: // esc + return false; + default: + if (!$(form).hasClass('ctools-ajaxing')) { + if (timeoutID) { + clearTimeout(timeoutID); + } + timeoutID = setTimeout(function() { $(form).find('.ctools-auto-submit-click').click(); }, 500); } - - timeoutID = setTimeout(function() { $(form).find('.ctools-auto-submit-click').click(); }, 300); } - } - }); + }); + }); } } })(jQuery);