Как кастомизировать радиобаттон с помощью лейбла находящегося за пределами формы?

Задача такая, есть некая форма содержащая заполняемые поля пользывателем, в ней 4 скрытых радиобаттона для 4 типов товаров леблы которых находятся вне формы, а точнее каждый лейбл радиобаттона находится под описание товарного предложения.
Необходимо кастомизировать эти лейблы, разрисовать с помощью css это не проблема, а вот заставить их изменить внешний вид после нажатия не удается, что можете посоветовать для решения этой проблемы? (в js я не силен)
html
<label for="ulu" onclick="" class="radiobutton"></label>
                 <label for="demo1" onclick="" class="radiobutton"></label>
                 <label for="demo2" onclick="" class="radiobutton"></label>
                 <label for="demo3" onclick="" class="radiobutton"></label>

                <form role="form">
                <div class="form-group">
                    <input type="radio" name="compane" id="ulu" value="option1">
                    <input type="radio" name="compane" id="demo1" value="option1">
                    <input type="radio" name="compane" id="demo2" value="option1">
                    <input type="radio" name="compane" id="demo3" value="option1">
                </div>
                <div class="form-group">
                  <label for="phone">Мобильный телефон</label>
                  <input type="text" class="form-control" id="phone">
                </div>
                <div class="form-group">
                  <label for="name">Ваше ФИО</label>
                  <input type="text" class="form-control" id="name">
                </div>
                <div class="form-group">
                  <label for="qustion">Ваш вопрос</label>
                  <textarea class="form-control" id="question" rows="5"></textarea>
                  <p class="help-block"><span>Например: </span>...</p>
                </div>
                <div class="checkbox">
                  <label>
                  <input type="checkbox" checked> Соглашаюсь с <a href="Privacy_Policy.html">политикой конфиденциальности</a>
                  </label>
                </div>
                <button type="submit" class="btn btn-warning btn-lg">Задать вопрос</button>
              </form>

css
.radiobutton {
  display: block;
  margin: 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

input[type="radio"] {
  display: none;
}

.custom-checkbox {
  background: #333;
  border: 8px solid #fff;
}

jquery
<script>
          $(document).ready(function () {
            $('input:radio').change(function () {
              $('label.radiobutton').addClass('custom_checkbox');
    });
});
        </script>

Теперь ошибка в jquery, нажатие на один из label с классом .radiobutton выделяет их все. Я так понимаю, что при переключении они останутся с добавленным классом .custom-checkbox. Как исправить?
  • Вопрос задан
  • 4054 просмотра
Решения вопроса 1
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Если я вас правильно понял, то:
<label for="demo1" onclick="" class="radiobutton option_2"></label>
                 <label for="demo2" onclick="" class="radiobutton option_3"></label>
                 <label for="demo3" onclick="" class="radiobutton option_4"></label>

                    <input type="radio" name="compane" id="ulu" value="option_1">
                    <input type="radio" class="option_2" name="compane" id="demo1" value="option_2">
                    <input type="radio" class="option_3" name="compane" id="demo2" value="option_3">
                    <input type="radio" class="option_4" name="compane" id="demo3" value="option_4">

$(document).ready(function () {
  $('input:radio', ".form-group").change(function () {
    $('label.radiobutton.' + $(this).attr("class")).addClass('custom_checkbox');
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы