从阅读我在这里可以找到的所有内容中可以看出,这似乎不可能,但我只是想我会问。
我想要做的是阻止复选框执行默认切换操作并改为运行函数。此函数需要知道复选框CURRENT状态 - 而不是单击事件切换后它将处于的状态 - 并且需要阻止切换。
所以说我有这个输入例如
<input type="checkbox" onclick="setDefault(this);return false;" />
setdefault函数就是这样的
function setDefault(el) {
if(jQuery(el).is(':checked'))
{
alert('Turning current default off- setting default to Home settings');
jQuery(el).prop('checked',false);
return;
}
else
{
alert('setting a new default');
jQuery(el).prop('checked',false);
return;
}
}
当它运行时,它会获得复选框已更改为的状态,我需要它做的是阻止状态更改,找出其当前状态,然后决定要做什么。
我已经尝试过preventDefault()的每个组合并返回false我可以在函数和onclick事件中想到并尝试使用onchange事件等等,但似乎没有任何东西可以让我调用一个函数来触发单击该复选框,允许函数在单击事件更改之前获取复选框的当前值。
可能我只需要重新考虑这一点,但如果有什么明显我错过了我会非常感激
答案 0 :(得分:2)
由于更改已经发生,因此复选框的状态与 now 的状态相反。这解决了你的第一个问题。
要重置状态,只需将复选框的checked
值设置为现在的值,这就是之前的值。
(我的,这听起来就像疯帽子会说的那样!)