如何提醒只有当所有选定的元素的值等于“否”。
我试着用.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来在这种情况下检查是否有多个值同时/在一起。
使用上投入&&
运营商,他们被检查时。使用:checked
选择检查他们的检查状态。你正在寻找的条件是这个
if($('input[name="q1"]:checked').val() =='n' && $('input[name="q2"]:checked').val()=='n')
alert('No if both');
}
$('input[name="q1"], input[name="q2"]').change(function() {
if ($(this).val() == 'y') {
alert('Yes if any');
}
else {
if($('input[name="q1"]:checked').val() =='n' && $('input[name="q2"]:checked').val()=='n')
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>
得到选择单选按钮值的阵列,则可以使用阵列的方法,如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>
通过使用阵列,这是很容易扩展到更大的单选按钮组的数量而无需额外的代码。