Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2020, 20:13
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Отметить чекбокс
Привет.
<input type="radio  name="user_plan" value="1" />
      <input type="text" size="5" class="form-control" name="wish_ves" id="wish_ves" value="">

Таких блоков несколько.
Код должен работать,если отмечен один из чекбоксов у радио. Но нужно подстраховаться,если юзер введёт значение в текстовой инпут,а радио не отметит. Как можно это сделать? Как отметить радио у конкретного инпута?
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2020, 21:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ureech,
блок.oninput => (блок input.radio).checked = true
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2020, 10:40
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от 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, т. е. одинаковая обработка на сервере или в приложении.

Последний раз редактировалось Malleys, 21.04.2020 в 10:45.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2020, 11:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Malleys,
Ответить с цитированием
  #5 (permalink)  
Старый 22.04.2020, 17:23
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Спасибо.Понятно).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка транскрипта в форме, при нажатии на чекбокс, не отключается. Dmitrij_Kh Javascript под браузер 4 24.01.2020 22:57
Если чекбокс активен то.... KEMPZOR Общие вопросы Javascript 2 25.03.2017 01:21
ЧекБокс по ссылке, но не работает другой скрипт qwe88 Общие вопросы Javascript 6 11.10.2016 12:00
Выделить цветом строку и отметить чекбокс. youscript Javascript под браузер 3 26.08.2014 08:34
Свой чекбокс на скрипте Олег123 Элементы интерфейса 5 06.11.2012 17:19