From 674c27a693e901a9faa90b4f5e271fbb595bbcea Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Thu, 27 Aug 2020 08:49:36 +0100 Subject: [PATCH] Fix the autofocus component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since moving textboxes to GOV.UK Frontend we’ve started putting the data attribute on the `input` element itself, not a wrapper around it. This commit updates the Javascript accordingly. --- app/assets/javascripts/autofocus.js | 2 +- tests/javascripts/autofocus.test.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/autofocus.js b/app/assets/javascripts/autofocus.js index c280b7454..002a676a2 100644 --- a/app/assets/javascripts/autofocus.js +++ b/app/assets/javascripts/autofocus.js @@ -9,7 +9,7 @@ // is still where users intend to start if (($(window).scrollTop() > 0) && !forceFocus) { return; } - $('input, textarea, select', component).eq(0).trigger('focus'); + $(component).filter('input, textarea, select').eq(0).trigger('focus'); }; }; diff --git a/tests/javascripts/autofocus.test.js b/tests/javascripts/autofocus.test.js index cae67996f..52b516613 100644 --- a/tests/javascripts/autofocus.test.js +++ b/tests/javascripts/autofocus.test.js @@ -15,11 +15,11 @@ describe('Autofocus', () => { // set up DOM document.body.innerHTML = - `
+ `
- +
`; focusHandler = jest.fn(); @@ -63,7 +63,7 @@ describe('Autofocus', () => { $.prototype.scrollTop = jest.fn(() => 25); // set the force-focus flag - document.querySelector('div').setAttribute('data-force-focus', true); + document.querySelector('#search').setAttribute('data-force-focus', true); // start module window.GOVUK.modules.start();