mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 19:03:30 -05:00
In 674c27a693 we updated the autofocus
Javascript to be compatible with GOV.UK Frontend textboxes, which have
the `data-module` attribute set on the `input` element, rather than on
a wrapper element.
However we still have some `<textarea>`s and `<input>`s which haven’t
moved to GOV.UK Frontend and therefore aren’t getting picked up by the
Javascript which is supposed to focus them.
This commit makes the Javascript work with both kinds of textbox, which
is needed until we move entirely to GOV.UK Frontend.
28 lines
840 B
JavaScript
28 lines
840 B
JavaScript
(function(Modules) {
|
|
"use strict";
|
|
|
|
Modules.Autofocus = function() {
|
|
this.start = function(component) {
|
|
var $component = $(component),
|
|
forceFocus = $component.data('forceFocus');
|
|
|
|
// if the page loads with a scroll position, we can't assume the item to focus onload
|
|
// is still where users intend to start
|
|
if (($(window).scrollTop() > 0) && !forceFocus) { return; }
|
|
|
|
// See if the component itself is something we want to send focus to
|
|
var target = $component.filter('input, textarea, select');
|
|
|
|
// Otherwise look inside the component to see if there are any elements
|
|
// we want to send focus to
|
|
if (target.length === 0) {
|
|
target = $('input, textarea, select', $component);
|
|
}
|
|
|
|
target.eq(0).trigger('focus');
|
|
|
|
};
|
|
};
|
|
|
|
})(window.GOVUK.Modules);
|