Skip to content

Commit d942a4f

Browse files
authored
Merge pull request #2845 from drgrice1/set-detail-numeric-inputs
Remove the label/value hack on the "Set Detail" page.
2 parents 6ee734b + 94dbfed commit d942a4f

3 files changed

Lines changed: 244 additions & 244 deletions

File tree

htdocs/js/ProblemSetDetail/problemsetdetail.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,4 +467,26 @@
467467
const input = document.getElementById(btn.dataset.seedInput);
468468
if (input) btn.addEventListener('click', () => (input.value = Math.floor(Math.random() * 10000)));
469469
}
470+
471+
// Handle mixed select/number input fields.
472+
for (const numericSelect of document.querySelectorAll('.mixed-numeric-select')) {
473+
const select = numericSelect.querySelector('select');
474+
const numberInput = numericSelect.querySelector('input');
475+
let currentNumberValue = numberInput.value !== '' ? numberInput.value : numberInput.min;
476+
477+
const setNumericState = () => {
478+
if (select.value === 'numeric') {
479+
numberInput.value = currentNumberValue;
480+
numberInput.disabled = false;
481+
numberInput.required = true;
482+
} else {
483+
if (numberInput.value !== '') currentNumberValue = numberInput.value;
484+
numberInput.value = '';
485+
numberInput.disabled = true;
486+
numberInput.required = false;
487+
}
488+
};
489+
select.addEventListener('change', setNumericState);
490+
setNumericState();
491+
}
470492
})();

0 commit comments

Comments
 (0)