jQuery – 是一个单选按钮还是复选框?

我有一个UI,可以使用复选框或一对值为0和1的单选按钮,以允许用户插入布尔值。

当单击复选框或任一单选按钮时,我会调用一个事件处理程序。

如果选中该复选框,或者选中了值为1的单选按钮,我想做一件事,如果未选中复选框,或者选择了值为0的单选按钮,或者如果没有单选按钮被选中,我想做另一个。

这是复杂性 – 我需要调用相同的事件处理程序,无论它是否附加到复选框或单选按钮。

所以问题是,构建代码最简洁的方法是什么? Element.is(’checked’)不起作用,因为如果选择了任一单选按钮,它将返回true。 Element.val()不起作用,因为复选框始终具有常量值。

想法?

使用onChange来触发事件。 然后,您可以检查TYPE属性并在那里拆分逻辑(如果选中复选框,检查是否已选中,如果是无线电,则检查值):

$('.myInput').change(function(){ if($(this).attribute('type')=='radio'){ ... get the value ... } else { ... see if it's checked ... } })