作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何仅在所有选定元素的值都等于“否”时才发出警报。
我已经尝试使用 .val
,但不确定(如果,或..)如何使用 .click
仅当两个单选按钮都出现时才获得警报获取值 "n"
:
$('input[name="q1"], input[name="q2"]').change(function() {
if ($(this).val() == 'y') {
alert('Yes if any');
}
else {
// both radio buttons with "No" value: (how to)
/*
if ($(this).click().val == 'n'){
alert('No if both');
}
*/
alert('No if both');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
<p>Q1</p>
<input type="radio" name="q1" value="y">Yes
<input type="radio" name="q1" value="n">No
</div>
<div class="form-group">
<p>Q2</p>
<input type="radio" name="q2" value="y">Yes
<input type="radio" name="q2" value="n">No
</div>
我只想在两个单选按钮的值都为 "n"
时显示第二个警报,但是,我不知道如何让 Jquery 同时/一起检查多个值在这种情况下。
最佳答案
获取选定单选按钮值的数组,然后可以使用数组方法,如includes
和every
:
const $inputs = $('input[name="q1"], input[name="q2"]');
$inputs.change(function() {
const vals = $inputs
.filter(':checked')
.map((_, input) => input.value)
.get();
if (vals.includes('y')) {
console.log('At least one "Yes"');
} else if (vals.length === 2 && vals.every(val => val === 'n')) {
console.log('Both "No"');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
<p>Q1</p>
<input type="radio" name="q1" value="y">Yes
<input type="radio" name="q1" value="n">No
</div>
<div class="form-group">
<p>Q2</p>
<input type="radio" name="q2" value="y">Yes
<input type="radio" name="q2" value="n">No
</div>
通过使用数组,无需额外代码即可轻松扩展到更多数量的单选按钮组。
关于javascript - 如何通过多个名称选择来检查所选元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501665/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!