diff --git a/clientside_validation.js b/clientside_validation.js index 8fd2d32..f53d76a 100644 --- a/clientside_validation.js +++ b/clientside_validation.js @@ -709,7 +709,8 @@ if ($checkboxes.length) { $checkboxes.addClass('require-one'); $checkboxes.each(function(){ - var rule = self.forms[formid].checkboxrules[r]; + // Make sure we are working with the copy of rules object. + var rule = jQuery.extend(true, {}, self.forms[formid].checkboxrules[r]); if (typeof self.validators[formid].settings.messages[r] === 'undefined') { self.validators[formid].settings.messages[r] = {}; } @@ -726,7 +727,8 @@ self.time.start('daterangerules'); jQuery.each (self.forms[formid].daterangerules, function(r) { $form.find('#' + r).find('input, select').not('input[type=image]').each(function(){ - var rule = self.forms[formid].daterangerules[r]; + // Make sure we are working with the copy of rules object. + var rule = jQuery.extend(true, {}, self.forms[formid].daterangerules[r]); if (typeof self.validators[formid].settings.messages[r] === 'undefined') { self.validators[formid].settings.messages[r] = {}; } @@ -743,7 +745,8 @@ self.time.start('dateminrules'); jQuery.each (self.forms[formid].dateminrules, function(r) { $form.find('#' + r).find('input, select').not('input[type=image]').each(function(){ - var rule = self.forms[formid].dateminrules[r]; + // Make sure we are working with the copy of rules object. + var rule = jQuery.extend(true, {}, self.forms[formid].dateminrules[r]); if (typeof self.validators[formid].settings.messages[r] === 'undefined') { self.validators[formid].settings.messages[r] = {}; } @@ -760,7 +763,8 @@ self.time.start('datemaxrules'); jQuery.each (self.forms[formid].datemaxrules, function(r) { $form.find('#' + r).find('input, select').not('input[type=image]').each(function(){ - var rule = self.forms[formid].datemaxrules[r]; + // Make sure we are working with the copy of rules object. + var rule = jQuery.extend(true, {}, self.forms[formid].datemaxrules[r]); if (typeof self.validators[formid].settings.messages[r] === 'undefined') { self.validators[formid].settings.messages[r] = {}; } @@ -775,7 +779,8 @@ if ('rules' in self.forms[formid]) { self.time.start('rules'); - var rules = self.forms[formid].rules; + // Make sure we are working with the copy of rules object. + var rules = jQuery.extend(true, {}, self.forms[formid].rules); // :input can be slow, see http://jsperf.com/input-vs-input/2 $form.find('input, textarea, select').each(function(idx, elem) { var rule = rules[elem.name]; diff --git a/clientside_validation.module b/clientside_validation.module index 1275ebe..975856f 100644 --- a/clientside_validation.module +++ b/clientside_validation.module @@ -30,7 +30,7 @@ function clientside_validation_js_alter(&$javascript) { $clientside_validation_settings['clientsideValidation']['general']['months'][t(date('F', $date))] = $month_number; $clientside_validation_settings['clientsideValidation']['general']['months'][t(date('M', $date))] = $month_number; } - $javascript['settings']['data'][] = $clientside_validation_settings; + drupal_add_js($clientside_validation_settings, 'setting'); } function clientside_validation_ajax_render_alter(&$commands) {