Mar*_*k H 20 jquery jquery-selectors
在做某事之前是否需要检查两个或更多ID的方法.
例如:
如果选中BOTH Checkbox 1和Checkbox 2,则会发生事件.
但如果只有1个或其他自己检查,则会发生其他事情.
我认为这会起作用,但不是.
function toggleStatus() {
if ($('#checkbox1 #checkbox2').is(':checked')) {
$('.option1 :input').attr('checked', true);
} else {
$('.option1 :input').attr('checked', false);
}
function toggleStatus() {
if ($('#checkbox1').is(':checked')) {
$('.option2 :input').attr('checked', true);
} else {
$('.option2 :input').attr('checked', false);
}
function toggleStatus() {
if ($('#checkbox2').is(':checked')) {
$('.option3 :input').attr('checked', true);
} else {
$('.option3 :input').attr('checked', false);
}
Run Code Online (Sandbox Code Playgroud)
希望我正确解释这一点.我已经找了三天而且我被卡住了.谢谢你的帮助!
Chr*_*tte 63
$('#checkbox1, #checkbox2').change(function() {
if ($('#checkbox1').is(':checked') && $('#checkbox2').is(':checked')) {
// Do some stuff if both boxes are checked...
}
});
Run Code Online (Sandbox Code Playgroud)
布尔逻辑ftw!所以我很确定你正在寻找所谓的独家或者XOR.这意味着如果只有一个且只有一个操作数为true,则整个表达式将为true.如果两个操作数都不为真或两者都为真,则整个表达式将计算为false.对此的运营商是^
.所以这是代码(借用Chris作为基本格式)......
$('#checkbox1, #checkbox2').change(function() {
if($('#checkbox1').is(':checked') && $('#checkbox2').is(':checked')) {
// Both are checked
}
else if($('#checkbox1').is(':checked') ^ $('#checkbox2').is(':checked')) {
// Exactly one is checked
}
});
Run Code Online (Sandbox Code Playgroud)
实际上,你只需要第二个OR就可以了,if
因为我们使用了一个else if
和第一个if
封面,当两个都被选中时.但它并不那么酷,显然不能单独使用它来做同样的事情(并且更好地缩小*咳嗽咳嗽*).
请享用!
我会给复选框一个公共类。然后使用它作为选择器并计算选中的值。然后,如果检查了两个,则执行某些操作。如果检查了一项,则检查该一项的值并相应地执行您需要的操作。
编辑:例如,您分配了一个公共类 myCheckBoxes
所以你可以执行以下伪代码:
var myCheckBoxes = $('.myCheckBoxes:checked') //not sure on selector
if (myCheckBoxes.length == 2)
//do something because both are checked
else if (myCheckBoxes.length == 1)
{
if (myCheckBoxes.val() == "A")
// do something because A was checked
else if (myCheckBoxes.val() == "B")
// do something because B was checked
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36400 次 |
最近记录: |