如果未选中复选框,则禁用链接

时间:2013-12-31 14:01:34

标签: javascript jquery

如果用户取消选中该复选框,我想禁用链接。

尝试了类似的事情:

$('#check1').click(function() {
  if(!$(this).is(':checked')){
    $('#tet1').bind('click', function(){ return false; });
  }else{
    $('#tet1').unbind('click');
  }
});

但它不起作用。 http://jsfiddle.net/LX7wH/

为什么这不适合我?哪里我错了? 谢谢!

3 个答案:

答案 0 :(得分:9)

当复选框被更改时,您不需要执行任何操作,只需检查是否在锚点的事件处理程序中检查了它,如果选中它,则阻止默认操作。

$('#tet1').on('click', function(e) {
    if ( $('#check1').is(':checked') ) e.preventDefault();
});

答案 1 :(得分:2)

尝试,

var xEnabled = true;

$('#check1').click(function() {
 xEnabled = $(this).is(':checked');
});

$('#tet1').click(function(){
   if(!xEnabled) { return false; }
})

DEMO

答案 2 :(得分:1)

我相信这就是你所追求的:

<a href="http://www.google.com">Google</a>
<input type="checkbox" id="checkBox" />

$("a").click(function(e) {
        if($("#checkBox").prop("checked") === true) {
            e.preventDefault();
            return false;
        } else {
            return true;
        };
    });

这将停止所有链接工作,但您可以将“a”选择器更改为您想要的任何内容。

http://jsfiddle.net/KDZDE/