Fix issues with select2 validation when it is part of hidden 'On behalf of organisati...
authorMatthew Wire <mjw@mjwconsult.co.uk>
Sat, 20 Jun 2020 11:04:36 +0000 (12:04 +0100)
committerSeamus Lee <seamuslee001@gmail.com>
Sat, 20 Jun 2020 14:31:43 +0000 (00:31 +1000)
templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl
templates/CRM/common/l10n.js.tpl

index df62fc7a022066a06b32558a6c6e3e7c5904f201..26b67db9573ea4b5cf9bbf9f8b08b701bd707aa7 100644 (file)
     selectCreateOrg(orgOption, false);
 
     if (is_for_organization.length) {
-      $('#on-behalf-block').toggle(is_for_organization.is(':checked'));
+      showHideOnBehalfOfBlock();
+
+      is_for_organization.on('change', function() {
+        showHideOnBehalfOfBlock();
+      });
     }
 
-    is_for_organization.on('change', function(){
-      $('#on-behalf-block').toggle($(this).is(':checked'));
-    });
+    function showHideOnBehalfOfBlock() {
+      $('#on-behalf-block').toggle(is_for_organization.is(':checked'));
+
+      if (is_for_organization.is(':checked')) {
+        $('#onBehalfOfOrg select.crm-select2').removeClass('crm-no-validate');
+      }
+      else {
+        $('#onBehalfOfOrg select.crm-select2').addClass('crm-no-validate');
+      }
+    }
 
     $("input:radio[name='org_option']").click( function( ) {
       var orgOption = $(this).attr('id');
index 8af3a8fa58ae9a23a368ce56f22d794cf6f537db..9e628c77ef5c343943fa68f862595e3b3d0bdcce 100644 (file)
@@ -95,7 +95,7 @@
   var params = {
     errorClass: 'crm-inline-error alert-danger',
     messages: {},
-    ignore: ".select2-offscreen, [readonly], :hidden:not(.crm-select2)",
+    ignore: '.select2-offscreen, [readonly], :hidden:not(.crm-select2), .crm-no-validate'
     ignoreTitle: true
   };