2011-05-27 107 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> 
相關問題