我有一个UI,可以使用复选框或一对值为0和1的单选按钮,以允许用户插入布尔值。
当单击复选框或任一单选按钮时,我会调用一个事件处理程序。
如果选中该复选框,或者选中了值为1的单选按钮,我想做一件事,如果未选中复选框,或者选择了值为0的单选按钮,或者如果既没有选择单选按钮,我也想做另一个。
这是复杂性 - 我需要调用相同的事件处理程序,无论它是否附加到复选框或单选按钮。
所以问题是,构建代码的最简洁方法是什么? Element.is('checked')不起作用,因为如果选择了任一单选按钮,它将返回true。 Element.val()不起作用,因为复选框始终具有常量值。
想法?
答案 0 :(得分:4)
使用onChange触发事件。然后,您可以检查TYPE属性并在那里拆分逻辑(如果选中复选框,检查是否已选中,如果是无线电,则检查值):
$('.myInput').change(function(){
if($(this).attribute('type')=='radio'){
... get the value ...
} else {
... see if it's checked ...
}
})