2014-02-25 21 views
0

的jQuery的foreach我有jQuery的用於禁用按鈕 如果複選框選中,那麼按鈕啓用的複選框

document.getElementById('disabler').onchange = function() { 
         if ($(disabler).is(":checked")){ 
          $("#signin_submit").prop('disabled', false); 
          $("#signin_submit").css('cursor', 'pointer'); 
         } else { 
         $("#signin_submit").prop('disabled', true); 
         $("#signin_submit").css('cursor', 'not-allowed'); 
         } 
        } 
        }); 

有許多複選框,但是這個代碼僅用於第一個複選框唯一的工作!

+3

是什麼'disabler'的價值? –

+3

當你已經有jQuery的時候,你爲什麼要做document.getElementById('disabler')onchange'? – mishik

+0

它的正義ID名稱' id?>」/>' – user3261715

回答

1

使用此,因爲你說你有很多。

1

有許多複選框,但此代碼僅適用於第一個複選框!

ID必須是唯一的。。你應該改爲上課。

$(document).on("change", "<selector for disablers>", function() { 
    if (this.checked) { 
     $("#signin_submit").prop('disabled', false); 
     $("#signin_submit").css('cursor', 'pointer'); 
    } else { 
     $("#signin_submit").prop('disabled', true); 
     $("#signin_submit").css('cursor', 'not-allowed'); 
    } 
}); 

<selector for disablers>也許應該是一個類(.disabler),而不是ID:使用類選擇

$('.disabler').change(function() { 
    if ($(this).is(":checked")) { 
     $("#signin_submit").prop('disabled', false).css('cursor', 'pointer'); 
    } else { 
     $("#signin_submit").prop('disabled', true).css('cursor', 'not-allowed'); 
    } 
}); 
1

嘗試只使用jQuery的的

例子:

$('#disabler').change(function() { 
    if ($(this).is(":checked")) { 
     $("#signin_submit").prop('disabled', false).css('cursor', 'pointer'); 
    } else { 
     $("#signin_submit").prop('disabled', true).css('cursor', 'not-allowed'); 
    } 
}); 
1

試試這個:

  $("#disabler").change(function(){ 
        if ($("#disabler").is(":checked")){ 
         $("#signin_submit").prop('disabled', false); 
         $("#signin_submit").css('cursor', 'pointer'); 
        } 
        else { 
         $("#signin_submit").prop('disabled', true); 
         $("#signin_submit").css('cursor', 'not-allowed'); 
        } 
     }); 
1

,如果你有一個以上的disabler在你頁面,首先你應該使用,而不是IDclass屬性,然後輕鬆地做到這一點:

$(document).on("change", ".disabler", function(){ 
    //your stuff 
}); 

ID屬性用作unique標識符。

檢查此工作DEMO;

1

我同意,你已經使用jQuery,所以使用它。

但是,此外,你調用jQuery對象的次數太多了。如果你通過解析來獲取jQuery對象不止一次,那麼你應該創建局部變量。

其次,你可以考慮使用閉包的強大這樣的事情:

function wireDisabler() { 
    // closures 
    var $cbxDisabler = $('#disabler'); 
    var $btnSubmit = $("#signin_submit"); 
    var fOnChange = function() { 
     var bChecked = $cbxDisabler.is(':checked'); 
     $btnSubmit.prop('disabled', !bChecked) 
      .css('cursor', (bChecked ? 'pointer' : 'not-allowed')); 
    }; 
    // handle event 
    $cbxDisabler.change(fOnChange); 
}