С выпуском jQuery 1.6 рекомендация по SO была в целом начинать использовать prop () там, где вы использовали attr ().
Что происходит, когда я хочу сделать элемент доступным только для чтения?
$('.control').prop('readonly', 'readonly');
$('.control').prop('readonly', true);
Похоже, что ни один из них не делает управление доступным только для чтения. Делает ли элемент только для чтения исключением из правила?