Fix input element lookup from label (#2102)

This commit is contained in:
Thomas Rittson 2021-10-08 07:15:55 +10:00 committed by GitHub
parent ec5a2299ca
commit 6a567ed3bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 13 deletions

View File

@ -12,27 +12,24 @@ function getClickedElementIdentifier() {
return invalidElement;
}
const tagName = clickedEl.nodeName.toLowerCase();
const clickedTag = clickedEl.nodeName.toLowerCase();
let inputEl = null;
// Try to identify the input element (which may not be the clicked element)
if (inputTags.includes(tagName)) {
inputEl = clickedEl;
} else if (labelTags.includes(tagName)) {
let inputName = null;
if (tagName === 'label') {
inputName = clickedEl.getAttribute('for');
if (labelTags.includes(clickedTag)) {
let inputId = null;
if (clickedTag === 'label') {
inputId = clickedEl.getAttribute('for');
} else {
inputName = clickedEl.closest('label')?.getAttribute('for');
inputId = clickedEl.closest('label')?.getAttribute('for');
}
if (inputName != null) {
inputEl = document.querySelector('input[name=' + inputName + '], select[name=' + inputName +
'], textarea[name=' + inputName + ']');
}
inputEl = document.getElementById(inputId);
} else {
inputEl = clickedEl;
}
if (inputEl == null) {
if (inputEl == null || !inputTags.includes(inputEl.nodeName.toLowerCase())) {
return invalidElement;
}