2014-04-13 188 views
0

我正在使用jquery选择复选框打开和关闭,当用户点击图像。jQuery选择复选框

这里是我的代码:

function clickimage(e){ 
    chkbox = e.parent().children('.chkBox'); 
    if(chkbox.is(":checked")){ 
     chkbox.attr('checked', false); 
    }else{ 
     chkbox.attr('checked', true); 
    } 
} 

当我第一次点击图片,复选框不检查。当我再次点击图片时,复选框未被选中。但问题是在那之后,复选框将不会再被选中。

我尝试验证chkbox.is(":checked")并确实返回false值。我在chkbox.attr('checked', true);后面加上检查代码,它也返回false值。

这是为什么?我该如何解决它?

谢谢。

+1

可以共享HTML –

回答

1

这样做:

function clickimage(e){ 
    chkbox = e.parent().children('.chkBox'); 
    if(chkbox.is(":checked")){ 
     chkbox.prop('checked', false); 
    }else{ 
     chkbox.prop('checked', true); 
    } 
} 

您应该使用.prop()而不是.attr()

0

尝试

if(chkbox.is(":checked")){ 
    chkbox.removeAttr('checked'); 
}else{ 
    chkbox.attr('checked', 'checked'); 
} 
0

试试这个:

function clickimage(e){ 
    chkbox = e.parent().find('.chkBox'); 
    if(chkbox.is(":checked")){ 
    chkbox.attr('checked', false); 
    }else{ 
     chkbox.attr('checked', true); 
    } 
} 
1

这不需要Javascript。

只需将图像放入label即可。

Fiddle here

+0

谢谢您的回答。我试着用标签。但在我的情况下,它不适用于IE8。这就是为什么我想使用JavaScript来完成这项工作。 – user1995781

+0

没问题。我认为这个问题提供了接受的答案是你感兴趣然后:https://stackoverflow.com/questions/15740206/checking-a-checkbox-by-clicking-an-image-with-changing-image-opacity – urbz