Сообщение от ureech
|
Но нужно подстраховаться,если юзер введёт значение в текстовой инпут,а радио не отметит. Как можно это сделать?
|
Хороший UX предполагает наличие <label>, а значит нажатие на текст тоже выделяет определённую радио-кнопку.
Сообщение от ureech
|
сли юзер введёт значение в текстовой инпут,а радио не отметит. Как можно это сделать? Как отметить радио у конкретного инпута?
|
Это должно происходить автоматический...
<form>
<fieldset>
<legend>fruit</legend>
<label><input type="radio" name="fruit" value="apple">apple</label>
<label><input type="radio" name="fruit" value="orange">orange</label>
<label><input type="radio" name="fruit" value=""><input></label>
</fieldset>
</form>
<script><!-- нужен только один скрипт для обработки всех радио-кнопок форм с редактируемым значением -->
for(const input of document.querySelectorAll("label input[type=radio] ~ input")) {
const radioButton = input.closest("label").querySelector("input[type=radio]");
input.addEventListener("focus", event => {
radioButton.checked = true;
});
input.addEventListener("input", event => {
radioButton.value = input.value;
});
}
</script>
Как видите, вам не нужна дополнительная обработка текстового поля — вы выберите кнопку или введёте текст — значение хранится в параметре fruit, т. е. одинаковая обработка на сервере или в приложении.