X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2FCommon.js;h=abc5cae3919372b766bb09156a5cef8341ce8d66;hb=5559162a97d504b2f8c0541d6ce5ee78f3cfaadc;hp=7918a9596d59a105df51adb4dc021094add8c1d5;hpb=95844f5d98954360e26cb5540232edb655cdbf96;p=civicrm-core.git diff --git a/js/Common.js b/js/Common.js index 7918a9596d..abc5cae391 100644 --- a/js/Common.js +++ b/js/Common.js @@ -245,7 +245,7 @@ CRM.validate = CRM.validate || { */ CRM.utils.initialValueChanged = function(el) { var isDirty = false; - $(':input:visible, :input.select2-offscreen', el).not('[type=submit], [type=button], .crm-action-menu').each(function () { + $(':input:visible, .select2-container:visible+:input.select2-offscreen', el).not('[type=submit], [type=button], .crm-action-menu').each(function () { var initialValue = $(this).data('crm-initial-value'); // skip change of value for submit buttons if (initialValue !== undefined && !_.isEqual(initialValue, $(this).val())) { @@ -510,16 +510,17 @@ CRM.validate = CRM.validate || { } }) .on('submit', function(e) { - // CRM-14353 - disable changes warn when submitting the form - $('[data-warn-changes]').removeAttr('data-warn-changes'); + // CRM-14353 - disable changes warn when submitting a form + $('[data-warn-changes]').attr('data-warn-changes', 'false'); }) - ; - - window.onbeforeunload = function() { - if (CRM.utils.initialValueChanged($('form[data-warn-changes=true]'))) { - return ts('You have unsaved changes.'); - } - }; + ; + + // CRM-14353 - Warn of unsaved changes for forms which have opted in + window.onbeforeunload = function() { + if (CRM.utils.initialValueChanged($('form[data-warn-changes=true]:visible'))) { + return ts('You have unsaved changes.'); + } + }; /** * Function to make multiselect boxes behave as fields in small screens