From 73200606bcd81668680dd2f6dd0d4fce95bbdee1 Mon Sep 17 00:00:00 2001 From: Sam Georges Date: Wed, 10 Sep 2014 19:29:02 +1000 Subject: [PATCH] Pass isFirstField attrib, allow prevent of default focus() --- modules/system/assets/js/framework.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/system/assets/js/framework.js b/modules/system/assets/js/framework.js index c9c98f812..cc26fea0f 100644 --- a/modules/system/assets/js/framework.js +++ b/modules/system/assets/js/framework.js @@ -202,15 +202,18 @@ if (window.jQuery === undefined) * Focus fields with errors */ if (data['X_OCTOBER_ERROR_FIELDS']) { - var foundField = false + var isFirstInvalidField = true $.each(data['X_OCTOBER_ERROR_FIELDS'], function(fieldName, fieldMessages){ var fieldElement = form.find('[name="'+fieldName+'"], [name$="['+fieldName+']"]').filter(':enabled').first() if (fieldElement.length > 0) { - if (!foundField) { - fieldElement.focus() - foundField = true + + var _event = jQuery.Event('ajaxInvalidField') + $(window).trigger(_event, [fieldElement, fieldName, fieldMessages, isFirstInvalidField]) + + if (isFirstInvalidField) { + if (!_event.isDefaultPrevented()) fieldElement.focus() + isFirstInvalidField = false } - $(window).trigger('ajaxInvalidField', [fieldElement, fieldName, fieldMessages]) } }) }