jQuery无法决定它如何处理按钮

时间:2014-02-04 01:03:20

标签: javascript jquery coffeescript

简单的前景。选中复选框可启用禁用按钮。取消选中此框会再次禁用该按钮。

代码:

jQuery ->
  $('#subscribe_button').attr('disabled','disabled')
  $("[name=chkACCEPT]").click ->
    if $(this).attr("checked")=="checked"
      $('#subscribe_button').removeAttr('disabled')
    else
      $('#subscribe_button').attr('disabled','disabled')

我还尝试使用prop代替attr。好像这么简单。启用和禁用按钮。我在那里放了警报,我知道代码正在解雇。只是没有做我想要的。

2 个答案:

答案 0 :(得分:3)

您需要使用attr()来设置禁用状态

,而不是使用.prop()
$('#subscribe_button').prop('disabled', true)
$("[name=chkACCEPT]").click -> 
    $('#subscribe_button').prop('disabled', !this.checked)

还可以使用dom元素的checked属性来检查是否选中了复选框

答案 1 :(得分:2)

在您的示例中,您设置的是disabled="disabled",但正确的方法是disabled="true"。您可以使用this.checked值在按钮元素上设置disabled属性:

$('#subscribe_button').attr('disabled', true)
$("input[name=chkACCEPT]").click ->
    $('#subscribe_button').attr('disabled', !this.checked)

在此处查看jsFiddle,仅当选中复选框时才会启用该按钮。