获取复选框的CURRENT值onclick

时间:2011-11-29 21:16:23

标签: jquery checkbox onclick

从阅读我在这里可以找到的所有内容中可以看出,这似乎不可能,但我只是想我会问。

我想要做的是阻止复选框执行默认切换操作并改为运行函数。此函数需要知道复选框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事件等等,但似乎没有任何东西可以让我调用一个函数来触发单击该复选框,允许函数在单击事件更改之前获取复选框的当前值。

可能我只需要重新考虑这一点,但如果有什么明显我错过了我会非常感激

1 个答案:

答案 0 :(得分:2)

由于更改已经发生,因此复选框的状态与 now 的状态相反。这解决了你的第一个问题。

要重置状态,只需将复选框的checked值设置为现在的值,这就是之前的值。

(我的,这听起来就像疯帽子会说的那样!)