#javascript #html #jquery #css
Вопрос:
Всем привет~ Я новичок в программировании, и мой английский не очень хорош. Я постараюсь изо всех сил описать свою проблему!
В настоящее время я хочу реализовать функцию
- Щелкните поле ввода, чтобы открыть окно
- Выберите некоторые параметры в окне
- Выбранные параметры можно поместить в это поле ввода…
- Параметры можно проверить
Но я нахожусь на этапе выбора параметров и ввода в поле ввода. Когда это трудно, я не знаю, как этого достичь! Поэтому было бы лучше спросить вас, как выполнить эту часть?
спасибо вам всем!
$(function(){
$('.input_box').on('click',function(){
$('.sport').css('display','block');
})
})
$(function(){
$('.sport').click(function(e){
if(e.target.classList.contains('sport')){
$(this).css('display','none');
}
})
})
// Attempt to compose failed
// $(function(){
// $('.item').on('click',function(e){
// console.log(e.value);
// })
// })
.input_box {
width: 500px;
height: 60px;
font-size: 30px;
}
.sport {
background-color: rgba(0, 0, 0, 0.3);
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
display: none;
}
.sport_content {
width: 500px;
padding: 20px;
margin: 0 auto;
background-color: red;
}
.sport_content .title {
text-align: center;
}
.sport_content .category {
display: flex;
}
.sport_content .category .item {
width: 100px;
background-color: yellow;
border-radius: 10px;
padding: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="">Choose your favorite sport</label><br>
<input type="text" placeholder="Put in your favorite sports" class="input_box">
<div class="sport">
<div class="sport_content">
<h2 class="title">Aerobic exercise</h2>
<ul class="category">
<li class="item" value="跑步">RUN</li>
<li class="item" value="游泳">Swim</li>
</ul>
</div>
</div>
Ответ №1:
Я изменил ваш код.Я надеюсь, что это соответствует вашим потребностям
$(function(){
$('.input_box').on('click',function(){
$('.sport').css('display','block');
})
})
$(function(){
$('.sport').click(function(e){
if(e.target.classList.contains('sport')){
$(this).css('display','none');
}
})
})
// Attempt to compose failed
$(function(){
$('.item').on('click',function(e){
// only a little change here
const val = e.target.getAttribute("value");
$('.input_box').val(val);
$('.sport').trigger("click");
})
})
.input_box {
width: 500px;
height: 60px;
font-size: 30px;
}
.sport {
background-color: rgba(0, 0, 0, 0.3);
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
display: none;
}
.sport_content {
width: 500px;
padding: 20px;
margin: 0 auto;
background-color: red;
}
.sport_content .title {
text-align: center;
}
.sport_content .category {
display: flex;
}
.sport_content .category .item {
width: 100px;
background-color: yellow;
border-radius: 10px;
padding: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="">Choose your favorite sport</label><br>
<input type="text" placeholder="Put in your favorite sports" class="input_box">
<div class="sport">
<div class="sport_content">
<h2 class="title">Aerobic exercise</h2>
<ul class="category">
<li class="item" value="跑步">RUN</li>
<li class="item" value="游泳">Swim</li>
</ul>
</div>
</div>
Комментарии:
1. Прежде всего, спасибо, что рассказали мне об этом и о методе~ Но поскольку я новичок, у меня есть вопрос~ Если сегодня я надеюсь, что элементы в окне могут быть выбраны несколькими, а не одним, как мне это переписать?
2. простой способ добиться изменения множественного выбора
$('.input_box').val(val);
$('.input_box').val(val $('.input_box').val());
.если вы хотите,чтобы пользователь завершил множественный выбор в одном всплывающем окне, для этого нужно больше css и js
Ответ №2:
jQuery(document).ready(function () {
$('.input_box').on('click',function(){
$('.sport').css('display','block');
});
$('.sport').click(function(e){
if(e.target.classList.contains('sport')){
$(this).css('display','none');
}
})
$('ul.category > li').on('click',function (){
const value = $(this).attr('data-value');
$('#input').val(value);
})
})
.input_box {
width: 500px;
height: 60px;
font-size: 30px;
}
.sport {
background-color: rgba(0, 0, 0, 0.3);
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
display: none;
}
.sport_content {
width: 500px;
padding: 20px;
margin: 0 auto;
background-color: red;
}
.sport_content .title {
text-align: center;
}
.sport_content .category {
display: flex;
}
.sport_content .category .item {
width: 100px;
background-color: yellow;
border-radius: 10px;
padding: 10px;
}
ul li{
cursor: pointer;
}
ul li:first-child{
margin-right: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="">Choose your favorite sport</label><br>
<input type="text" id="input" placeholder="Put in your favorite sports" class="input_box">
<div class="sport">
<div class="sport_content">
<h2 class="title">Aerobic exercise</h2>
<ul class="category">
<li class="item" data-value="跑步">RUN</li>
<li class="item" data-value="游泳">Swim</li>
</ul>
</div>
</div>
Комментарии:
1. Прежде всего, спасибо, что рассказали мне об этом и о методе~ Но поскольку я новичок, у меня есть вопрос~ Если сегодня я надеюсь, что элементы в окне могут быть выбраны несколькими, а не одним, как мне это переписать?