Задать вопрос
  • Как переключать радиокнопки по нажатиям на обычные кнопки?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Не надо никакого value у кнопок, если уж хотите связывать элементы через значения атрибутов, пусть это будет data-атрибут: <button value=" ---> <button data-value=".

    Назначаем делегированный обработчик клика, один для всех:

    document.addEventListener('click', ({ target: { dataset: { value } } } ) => {
      if (value) {
        document.querySelector(`[name="size"][value="${value}"]`).click();
      }
    });

    Или, каждой кнопке индивидуально:

    const radios = [...document.querySelectorAll('[name="size"]')];
    const buttons = [...document.querySelectorAll('button')];
    
    // можно смотреть на значение data-атрибута
    const onClick = e => radios.find(n => n.value === e.target.dataset.value).click();
    // или, кликать радиокнопку с тем же индексом, что и у кнопки обычной
    const onClick = e => radios[buttons.indexOf(e.target)].click();
    
    buttons.forEach(n => n.addEventListener('click', onClick));
    Ответ написан
    Комментировать