From b5b4ccd922b9607a40dc867ef8c0112551c09f13 Mon Sep 17 00:00:00 2001 From: wvengen Date: Wed, 7 May 2014 10:55:26 +0200 Subject: [PATCH] make data-submit-onchange work with datepicker --- app/assets/javascripts/application.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 98b7c852..0ed62fbe 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -77,15 +77,16 @@ $(function() { // Submit form when changing text of an input field. // Submission will be done after 500ms of not typed, unless data-submit-onchange=changed, // in which case it happens when the input box loses its focus ('changed' event). - $(document).on('changed keyup focusin', 'form[data-submit-onchange] input[type=text]:not([data-ignore-onchange])', function(e) { + // (changeDate is for bootstrap-datepicker) + $(document).on('changed keyup focusin changeDate', 'form[data-submit-onchange] input[type=text]:not([data-ignore-onchange])', function(e) { var input = $(this); // when form has data-submit-onchange=changed, don't do updates while typing - if (e.type!='changed' && input.parents('form[data-submit-onchange=changed]').length>0) { + if (e.type!='changed' && e.type!='changeDate' && input.parents('form[data-submit-onchange=changed]').length>0) { return true; } - // remember old value when it's getting the focus + // remember old value when it's getting the focus (unless we already have a change pending) if (e.type=='focusin') { - input.data('old-value', input.val()); + if (!input.data('submit-timeout-id')) input.data('old-value', input.val()); return true; } // trigger timeout to submit form when value was changed