2014-08-29 49 views
0

我有一個HTML,其中有表,一列表包含複選框,其他包含文本。無法更改複選框的屬性只讀

當頁面加載時,一個複選框將從後端自動打孔。我想讓該複選框只讀。下面是我正在使用的代碼,但它不工作。 請提出建議。

$(document).ready(function(){ 
    $('tr td').each(function(){ 
    $('this').find('input[type="checkbox"]:checked').prop('readOnly',true); 
    }); 
}); 

回答

0

除了使用'this'字符串和怪異的駱駝套管(這其實並不重要,一方面是因爲HTML 是不是區分大小寫,也因爲jQuery修復它小寫無論如何)有一個簡單的事實,有沒有蘇作爲只讀複選框See for yourself(如果你有興趣,爲什麼 - 簡單地說,只讀不能改變該字段的值 - 並在點擊複選框,當你真正changing its state

相反,使用禁用:

$(this).find('input[type="checkbox"]:checked').prop('disabled',true); 
0

更改此

$('this').find('input[type="checkbox"]:checked').prop('readOnly',true); 

這個

$(this).find('input[type="checkbox"]:checked').attr('disabled','disabled'); 
+0

現在還沒有工作對我來說,下面是我更新的代碼。 (){(document).ready(function(){('tr td')。each(function(){('this')。find('input [type =「checkbox」]:checked' ).prop('readonly',true); }); }); – Vaibhav 2014-08-29 10:14:37

+0

@Vaibhav ...試試yuvi的回答, – 2014-08-29 10:18:40

0

回報虛假的點擊事件...

試試這個:

$('tr td').each(function(){ 
    $(this).find('input[type="checkbox"]:checked').on('click', function(){ return false }); 
}); 

::JsFiddle::

0

您可以使用禁用所有複選框

$('input[type="checkbox"]:checked').prop('disabled', "true");