javascript - Jquery选择以前的单选按钮值而不是当前?
问题描述
我正在尝试获取所选单选按钮的当前值,但它不断获取上一个按钮而不是当前按钮。您必须双击它才能获得当前按钮。
看了之前的回答,还是不明白,求大神指点,谢谢。
代码笔 https://codepen.io/AdamChicago/pen/oNXZypq
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>D</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<button class="btn btn-dark" type="button" data-toggle="collapse" data-target="#collapseExample3" aria-expanded="false" aria-controls="collapseExample">
BUTTON
</button>
<div class="collapse" id="collapseExample3">
<div class="card card-body" style="background-color: rgb(65, 72, 78); border: none">
<div id="SortBTNS" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortPopular" value = "MostPopular" autocomplete="off"> Most Popular
</label>
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortTop" value = "TopRated" autocomplete="off"> Top Rated
</label>
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortTrending" value = "Trending" autocomplete="off"> Trending
</label>
<label class="btn btn-outline-info active">
<input type="radio" name="options" id="SortAZ" value = "A-Z" autocomplete="off" chedcked> A - Z
</label>
</div>
</div>
</div>
</body>
<script>
$('#SortBTNS').on('click', function() {
console.log($('#SortBTNS label.active input').val())
})
</script>
</html>
解决方案
改用此代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>D</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<button class="btn btn-dark" type="button" data-toggle="collapse" data-target="#collapseExample3" aria-expanded="false" aria-controls="collapseExample">
<i class="fas fa-sort"></i>
</button>
<div class="collapse" id="collapseExample3">
<div class="card card-body" style="background-color: rgb(65, 72, 78); border: none">
<div id="SortBTNS" class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortPopular" value = "MostPopular" autocomplete="off"> Most Popular
</label>
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortTop" value = "TopRated" autocomplete="off"> Top Rated
</label>
<label class="btn btn-outline-info">
<input type="radio" name="options" id="SortTrending" value = "Trending" autocomplete="off"> Trending
</label>
<label class="btn btn-outline-info active">
<input type="radio" name="options" id="SortAZ" value = "A-Z" autocomplete="off" chedcked> A - Z
</label>
</div>
</div>
</div>
</body>
<script>
$('#SortBTNS').on('click', function(e) {
console.log(e.target.children[0].value)
})
</script>
</html>
推荐阅读
- android - Android GitLab CI/CD 配置文件问题
- postgresql - 是否可以在 keystoneJS 6 上使用 PostgresQL 视图
- c# - MVC CORE 5 Boolean Radio Button asp-for Binding for Model.Property 未检查 Get
- javascript - 如何在 Ember Js 中的 If 语句中调用动作
- node.js - firebase 云函数示例代码错误
- react-native - React Native Api 和 Android 登录面临问题更新 android 版本失败?
- python - Google Ads API 指标成本、每次点击费用等太大了
- javascript - 是否可以通过 JavaScript 甚至 CSS 确定形状是否在 SVG 中的特定掩码下?
- flutter - 换屏后视频持续播放事件颤动
- python - 从python中的字符串中提取罗马数字