2011-05-27 110 views
3

我想要这样的东西,但稍作改动。我希望在复选框选中的事件上启用或禁用按钮,即当复选框被选中时,然后只有按钮应该被启用,否则它被禁用。这应该使用jQuery代码而不是JavaScript来完成。禁用或启用提交按钮复选框选中事件

由于这是MVC表单,所以没有表单ID。

回答

19
$(function() { 
    $('#id_of_your_checkbox').click(function() { 
     if ($(this).is(':checked')) { 
      $('#id_of_your_button').attr('disabled', 'disabled'); 
     } else { 
      $('#id_of_your_button').removeAttr('disabled'); 
     } 
    }); 
}); 

而这里是一个live demo

+0

'this.checked'是否就够了? – Raynos 2011-05-27 09:13:33

+0

@Raynos,确定它就足够了。 – 2011-05-27 09:18:45

+0

更好的措辞,是否有任何旧的浏览器错误与'this.checked','$(this).is(':checked')'为我处理?或者是检查只读更好。 – Raynos 2011-05-27 09:21:11

0
$('#checkbox').click(function(){ 
    if($(this).is(':checked')){ 
     $('#submitButton').attr("disabled", "true"); 
    }else { 
     $('#submitButton').removeAttr("disabled"); 
    } 

}); 

...它为我的作品...

+0

-1用于在每次检查框时将属性设置为真。 – Raynos 2011-05-27 09:16:24

+0

我没有让你雷诺斯? – chhameed 2011-05-27 11:35:11

+0

'$(this).attr('checked',true)'将属性设置为true。你想要做的是检查它是否具有该属性,或者它的值是否合理$'(this).attr('checked')=== something_sensible' – Raynos 2011-05-27 11:38:15

1

这是旧的,但用jQuery为我工作1.11

<script> 
$(function() { 
    $('#checkbox-id').click(function() { 
     if ($(this).is(':checked')) { 
      $('#button-id').removeAttr('disabled'); 
     } else { 
      $('#button-id').attr('disabled', 'disabled'); 
     } 
    }); 
}); 
</script> 

的指令,如果换用其他指令,并将按钮html markup add disabled =“禁用”

可能会帮助别人

Jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
相关问题