javascript - 使用单选按钮切换复选框
问题描述
在此答案的基础上,我尝试使用单选按钮检查切换时的所有复选框,但如果未切换,它们应该显示为未选中或禁用。他们控制地图上的图层,默认应该全部打开,然后用户可以删除它们。
这是我在下面尝试过的小提琴;
$('input[value="energyRating"]').change(function() {
if ($(this).is(':checked')){ //radio is now checked
$('input[id="check2"]').prop('checked', true);
$('input[id="check"]').prop('checked', false);
}
else { //radio is now checked
$('input[id="check2"]').prop('checked', false);
$('input[id="check"]').prop('checked', false);
}
});
澄清:在小提琴中,如果您单击额外的单选按钮,则不应选中任何复选框
解决方案
一个 HTML 元素的id
属性应该是唯一的,所以重复使用check
会使check2
你的 HTML 失效。我会放弃这些id
属性。
一种满足您需要并避免代码重复的方法是使用数据属性标记复选框元素,这些数据属性引用应检查的单选按钮。
这是看起来的样子:
$('input[name="sex"]').change(function() {
var selected = $('input[name="sex"]:checked').val();
$('input[name="vehicle"]').each(function () {
$(this).prop('checked', $(this).data("rating") === selected);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="a">
<input type="radio" name="sex" value="energyRating">energyRating<br>
<input type="radio" name="sex" value="energyRatingByCount">energyRatingByCount<br>
<input type="radio" name="sex" value="extra">extra
</div>
<div id="b">
<input type="checkbox" data-rating="energyRating" name="vehicle" value="Bike1">I have a bike<br>
<input type="checkbox" data-rating="energyRating" name="vehicle" value="Car">I have a car <br>
<input type="checkbox" data-rating="energyRatingByCount" name="vehicle" value="Bike">I have another bike<br>
<input type="checkbox" data-rating="energyRatingByCount" name="vehicle" value="Car">I have another car
</div>
推荐阅读
- android - Altbeacon 未检测到应用程序是否被杀死
- java - 构造函数中的无效
- javascript - 有没有一种安全的方法来检测日期是否是昨天?
- javascript - Sharepoint:使用内容编辑器对列表列进行总和
- java - 在拥有父元素的同时查找子元素
- scikit-learn - Kaggle 内核没有使用 GPU
- django - 在 Django 中使用外键更新视图
- python - 从 Heroku 定期删除文件
- python - python乌龟中的'ParseError:错误输入'
- java - 如何要求用户“再次播放”并使用简单的是或否问题重新运行 do while 循环?