Для создания кругов используйте элемент <label>
для каждого ввода. Этот ярлык может быть стилизован, поэтому в качестве опции будет отображаться круг. Сам ввод можно скрыть с помощью display: none
, чтобы показать только метку. Если вход находится внутри метки, при нажатии на него будет происходить изменение входа.
При JavaScript прослушайте событие change
внутри формы. Событие изменения происходит всякий раз, когда изменяется значение (или выбор) входа. Затем запустите отправку формы вручную с помощью метода .submit()
.
const form = document.querySelector('form');
form.addEventListener('change', function(event) {
form.submit();
});
form {
display: flex;
width: 100%;
}
.circle {
display: block;
width: 25px;
height: 25px;
border-radius: 50%;
border: 1px solid #d0d0d0;
margin: 0 5px;
cursor: pointer;
}
.circle input {
display: none;
}
.black {
background-color: black;
}
.brown {
background-color: brown;
}
.white {
background-color: white;
}
<form>
<label class="circle black">
<input type="radio" name="color_id" value="black">
</label>
<label class="circle brown">
<input type="radio" name="color_id" value="brown">
</label>
<label class="circle white">
<input type="radio" name="color_id" value="white">
</label>
</form>