#javascript #html #css
#javascript #HTML #css
Вопрос:
У меня есть этот код выбора пола, как мне добавить к нему обязательный атрибут, точно такой же, как в текстовом поле ввода над ним. В коде для gender нет входного тега для добавления требуемого имени тега и идентификатора для оценки php. Как данные для пола будут отправлены на следующую страницу обработки в обычном поле выбора. Вопрос задан программистом 2-недельной давности.
$('.gender-selector .item').on('click', function() {
$('.gender-selector .item').removeClass('active');
$(this).addClass('active')
})
.gender-selector {
width: 300px;
}
.gender-selector h1,
h2,
h3,
h4,
h5,
h6 {
text-align: center;
width: 100%;
height: 65px;
align-items: center;
display: flex;
justify-content: center;
font-weight: normal;
}
.gender-selector .container {
width: 100%;
display: flex;
justify-content: space-between;
}
.gender-selector .container .item {
width: 140px;
height: 150px;
border: 2px solid #eceff1;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
background: #fff;
border-radius: 8px;
box-shadow: inset 0px 0px 0px #000 42;
transition: all linear 0.1s;
}
.gender-selector .container .item.girl.active {
border: 2px solid #e91e63;
}
.gender-selector .container .item.girl.active .circle {
width: 15px;
height: 15px;
background: #e91e63;
}
.gender-selector .container .item.girl:hover {
cursor: pointer;
border: 2px solid #e91e63;
}
.gender-selector .container .item.boy.active {
border: 2px solid #2196f3;
}
.gender-selector .container .item.boy.active .circle {
width: 15px;
height: 15px;
background: #2196f3;
}
.gender-selector .container .item.boy:hover {
cursor: pointer;
border: 2px solid #2196f3;
}
.gender-selector .container .item .icon {
width: 64px;
height: 64px;
overflow: hidden;
margin: 0 auto;
}
.gender-selector .container .item .icon img {
max-width: 100%;
max-height: 100%;
}
.gender-selector .container .item p {
text-align: center;
margin-top: 10px;
}
.gender-selector .container .item .checked {
width: 20px;
height: 20px;
background: #eceff1;
border-radius: 50%;
position: absolute;
top: 5px;
right: 5px;
display: flex;
justify-content: center;
align-items: center;
}
.gender-selector .container .item .checked .circle {
width: 0px;
height: 0px;
background: #e91e63;
border-radius: 50%;
transition: all linear 0.1s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="text" name="name" id="name" placeholder="My name is" required>
<div class="gender-selector center">
<h3>I am</h3>
<div class="container">
<div class="item girl">
<div class="checked">
<div class="circle"></div>
</div>
<div class="icon">
<img src="https://image.flaticon.com/icons/svg/40/40739.svg" alt="">
</div>
<p>Female</p>
</div>
<div class="item boy">
<div class="checked">
<div class="circle"></div>
</div>
<div class="icon">
<img src="https://image.flaticon.com/icons/svg/40/40541.svg" alt="">
</div>
<p>Male</p>
</div>
</div>
</div>
<input type="submit"></input>
</form>
Комментарии:
1. Вам нужно решение для проверки без входных тегов?
Ответ №1:
В вашем коде отсутствуют входные данные для каждого параметра. Этот вход должен быть типа radio и должен иметь одинаковое имя для обоих с разными значениями, например:
<label>
<input type="radio" required="required" value="boy"> Boy
</label>
<label>
<input type="radio" required="required" value="girl"> Girl
</label>
Вы можете разместить их там же, где у вас есть div.circle, и оформить их так, чтобы они выглядели так же, как у вас.
Если вы хотите сделать тег ввода скрытым, просто сделайте это и в своем JS добавьте выбранный к тому, который пользователь нажимает, когда он нажимает на них.
Имейте в виду, что если ввод скрыт, вы не сможете отправить форму без того, чтобы пользователь не нажал на нее, и пользователь не узнает, почему форма не отправляется, поскольку у вас будет ошибка консоли.
Комментарии:
1. Спасибо, но есть ли способ отобразить ошибки вручную, если форма отправлена и ввод с именем «пол» не выбран, а затем запустить код для отображения ошибки вручную
2. @AvyeLe Конечно, поскольку вы используете jquery, вы можете легко добавить запрет по умолчанию для отправки формы и проверить все данные перед фактической отправкой и добавить к ним свои собственные ошибки проверки.