2014-04-14 215 views
0

我爲我的複選框,禁用複選框,當複選框被選中

$('.cuttingCheckbox').change(function() { 
     if (this.checked) { 
      alert('checked'); 
     } else { 
      alert('unchecked'); 
     } 
     }); 

我想禁用用戶檢查後立即複選框。請幫助我如何做到這一點。我知道這很簡單,但即時通訊非常新。

+2

'this.disabled = TRUE;'應該這樣做。 –

+2

你爲什麼想這樣做?禁用的表單元素的值不包含在請求中,並且用戶在禁用時無法取消選中該複選框。聽起來像一個不好的用戶體驗...的 –

+0

可能重複[JQuery的 - 複選框啓用/禁用(http://stackoverflow.com/questions/2330209/jquery-checkbox-enable-disable) –

回答

1

只需設置disabled屬性true當檢測到該複選框處於選中狀態,即:

$('.cuttingCheckbox').change(function() { 
    if (this.checked) { 
     alert('checked'); 
     this.disabled = true; 
    } else { 
     alert('unchecked'); 
    } 
    }); 

我還建議通過想爲什麼要禁用它。禁用的表單元素值不會發送到服務器。

+1

如果使用'的setAttribute()' ,這個值不會被「禁用」嗎? 'this.disabled = true'會更好的IMO。 – alex

+0

@alex Doh!我的錯。我的大腦必須脫離幾秒鐘,並同意編輯以反映這一點。 :)特別喜歡SO,因爲錯誤很快被捕獲和糾正。 – Alex

-1
$('.cuttingCheckbox').change(function() { 
     if (this.checked) { 
      document.getElementById("cuttingCheckbox").disabled= true 
     } else { 
      document.getElementById("cuttingCheckbox").disabled = false 
     } 
     }); 

希望這可能有幫助。 :)

+3

爲什麼你認爲有一個ID爲'cuttingCheckbox'的元素?此外,如果有多個帶有「cuttingCheckbox」類的複選框,這不會導致期望的結果。 –