javascript - 带有单选按钮和 jQuery 的下拉菜单
问题描述
我编写了一个带有单选按钮的下拉菜单来更改我网站中的货币。我使用 jQuery 打开/关闭此下拉菜单,但货币更改不起作用。
该类expanded
用于打开/关闭下拉菜单。
我认为错误来自这条线$('#' + $(e.target).attr('for')).prop('checked', true);
,但我不知道如何修改它。我希望它检查正确的输入。
$('.maincar__currency').click(function(e) {
e.preventDefault();
e.stopPropagation();
$(this).toggleClass('expanded');
$('#' + $(e.target).attr('for')).prop('checked', true);
});
$(document).click(function() {
$('.maincar__currency').removeClass('expanded');
});
.maincar__currency {
display: flex;
flex-direction: column;
min-height: 32px;
max-height: 32px;
margin-left: auto;
margin-bottom: 10px;
overflow: hidden;
border-radius: 6px;
box-sizing: border-box;
box-shadow: $shadowBox;
font-size: 14px;
font-weight: 500;
}
.maincar__currency label {
display: flex;
width: 80px;
height: 32px;
padding-top: 6px;
padding-bottom: 6px;
padding-left: 8px;
margin-right: 0 auto;
background-color: #fff;
text-align: center;
color: $mediumMainGrey;
cursor: pointer;
//box-sizing: border-box;
}
.maincar__currency label:hover {
background-color: $extraLightGrey;
}
.currency {
display: flex;
width: 100%;
}
.currency input {
display: none;
}
.currency img {
//object-fit: contain;
height: 20px;
width: auto;
margin-right: 6px;
}
.currency span {
display: flex;
//align-items: center;
color: $mediumMainGrey;
text-decoration: none;
}
.expanded {
max-height: 128px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="maincar__currency">
<label for="euro-radio-is">
<div class="currency currency__euro">
<img src="/assets/images/icons/euro.png" alt="Euro sign">
<input type="radio" name="currency-is" value="euro" id="euro-radio-is" class="euro_radio_is" checked="true">
<span class="default">EUR</span>
</div>
</label>
<label for="dollar-radio-is">
<div class="currency currency__dollar">
<img src="/assets/images/icons/dollar.png" alt="Dollar sign">
<input type="radio" name="currency-is" id="dollar-radio-is" class="dollar_radio_is" value="dollar">
<span>USD</span>
</div>
</label>
<label for="gbp-radio-is">
<div class="currency currency__pound">
<img src="/assets/images/icons/pound-sterling.png" alt="Pound sign">
<input type="radio" name="currency-is" id="gbp-radio-is" class="gbp_radio_is" value="gbp">
<span>GBP</span>
</div>
</label>
<label for="chf-radio-is">
<div class="currency currency__chf">
<img src="/assets/images/icons/swiss-franc.png" alt="Swiss franc sign">
<input type="radio" name="currency-is" id="chf-radio-is" class="chf_radio_is" value="chf">
<span>CHF</span>
</div>
</label>
</div>
解决方案
尝试使用以下代码:-
$(document).ready(function(){
$("input[type='radio']").click(function(){
var radioValue = $("input[name='currency-is']:checked").val();
if(radioValue){
alert("Your are a - " + radioValue);
}
});
});
您将获得单选按钮的值。让我知道这是否对您有帮助...
推荐阅读
- python - 关于 pygame 使用 pyinstaller “执行脚本失败”错误
- ruby-on-rails - 在 Rails 上按日期然后按城市分组
- python - IndexError:列表索引超出范围:
- dagster - Dagster 配置 YAML 中的环境变量
- android - 在当前光标位置将文本插入 SearchView 查询
- javascript - 没有提供“id”的参数。角 11
- arrays - C语言指针问题
- ios - 设置我的按钮的背景颜色,不包括附件按钮
- python - 如何使用 python 将此对象格式 2021-04-18 08:01:00 转换为日期时间格式?
- amazon-web-services - 有没有人有一个 PowerShell 脚本来启动和停止 aws ec2 实例