【发布时间】:2018-01-28 19:42:26
【问题描述】:
我做了一个 2 input checkboxes 的专属菜单:每个 input checkbox 对应一个不同的案例:(Player Vs Computer) 和 (Player1 Vs Player2),每个案例都与 2 buttons 相关联(按我的意愿工作) )。
我的问题是我想添加一项功能,即通过单击当前复选框(已选中)来取消选中当前复选框。
目前,我必须直接点击另一个input checkbox 取消选中当前的;我想同时获得这两个功能。
这是处理这 2 个独占 input checkbox 的当前代码:
// Check input checked
checkBoxState = $('#'+gameType+'').find('.game').prop('checked');
// Set oneButtonClicked to no for restore
$('#formGame').prop('oneButtonClicked', 'no');
// Handling input.game
$('#'+gameType+'').find('.game').prop('checked', !checkBoxState);
//$('#'+gameType+'').siblings().find('.game').prop('checked', checkBoxState);
// Set pointer-events to all for formGame
$('#formGame').css('pointer-events', 'all');
// Handling button.btn
$('#'+gameType+'').find('.btn').css('pointer-events', 'none');
$('#'+gameType+'').siblings().find('.btn').css('pointer-events', 'all');
$('#'+gameType+'').find('.btn').prop('disabled', checkBoxState);
$('#'+gameType+'').siblings().find('.btn').prop('disabled', !checkBoxState);
gameType 是当前游戏类型(Player Vs Computer 或 Player1 Vs Player2)。
input.game代表输入框
button.btn代表每个ìnput.game可用的2个按钮。
如何添加此功能,即单击当前选中的复选框取消选中,或直接单击另一个复选框取消选中?
更新 1
单击复选框应自动将其否定设置为另一个复选框。
更新 2
我尝试通过简单地调整 @CodeAt30 给出的解决方案:
gameType = (gameType == 'PlayerVsComputer') ? 'Player1VsPlayer2' : 'PlayerVsComputer';
$('#'+gameType).find('.game').prop('checked', !$('#'+gameType).find('.game').prop('checked'));
此解决方案适用于取消选中当前复选框并检查其兄弟姐妹()。
但是现在,我无法直接选择与 JS Fiddle 不同的另一个复选框:Uncheck checkbox by clicking directly on the other no-checked "input checkbow"
【问题讨论】:
-
如何使用单选按钮?
-
单选按钮可能确实是最好的解决方案。
标签: javascript jquery checkbox