From 679edfc0f8b78213c81a5d233fd48803ff7c3c36 Mon Sep 17 00:00:00 2001 From: Billy- Date: Tue, 26 Apr 2016 16:32:07 +0100 Subject: [PATCH] Validation events bind to radios with the same name attribute The events will trigger the validation on the original input. Fixes #413 --- src/main/jquery-plugins.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/main/jquery-plugins.js b/src/main/jquery-plugins.js index ab276fa..9a70cd5 100644 --- a/src/main/jquery-plugins.js +++ b/src/main/jquery-plugins.js @@ -16,10 +16,28 @@ * @return {jQuery} */ $.fn.validateOnBlur = function (language, conf) { - this.find('*[data-validation]') - .bind('blur.validation', function () { - $(this).validateInputOnBlur(language, conf, true, 'blur'); - }); + var $form = this, + $elems = this.find('*[data-validation]'); + + $elems.each(function(){ + var $this = $(this); + if ($this.is('[type=radio]')){ + var $additionals = $form.find('[type=radio][name="' + $this.attr('name') + '"]'); + $additionals.bind('blur.validation', function(){ + $this.validateInputOnBlur(language, conf, true, 'blur'); + }); + if (conf.validateCheckboxRadioOnClick) { + $additionals.bind('click.validation', function () { + $this.validateInputOnBlur(language, conf, true, 'click'); + }); + } + } + }); + + $elems.bind('blur.validation', function () { + $(this).validateInputOnBlur(language, conf, true, 'blur'); + }); + if (conf.validateCheckboxRadioOnClick) { // bind click event to validate on click for radio & checkboxes for nice UX this.find('input[type=checkbox][data-validation],input[type=radio][data-validation]')