Отключение элемента в jquery 1.6 - PullRequest
10 голосов
/ 05 мая 2011

С выпуском jQuery 1.6 рекомендация по SO обычно начиналась с использования prop() там, где вы использовали attr().

Что происходит, когда я хочу отключить элемент?

$('.control').prop('disabled', 'disabled');
$('.control').prop('disabled', true);

Кажется, что ни один из них не отключает управление. Является ли отключение элемента исключением из правила?

UPDATE И выясняется, что причина, по которой элемент не был отключен, была из-за строки, которая была у меня до строк выше:

$('.control').removeProp('disabled');

При включении элементов управления я привык использовать .removeAttr (), поэтому подумал, что .removeProp будет достаточно. Вместо этого используйте следующее для включения элементов управления:

$('.control').prop('disabled', false);

Ответы [ 3 ]

13 голосов
/ 05 мая 2011
$('.control').prop('disabled', true);

отлично работает у меня .

В качестве альтернативы используйте

$('.control').attr('disabled', 'disabled');

Обновление:

Но даже $('.control').prop('disabled', 'disabled'); или $('.control').attr('disabled', true); тоже отключают элемент. Так что, если это не работает для вас, вопрос в том, какой элемент вы пытаетесь отключить. Можно ли даже отключить?

3 голосов
/ 05 мая 2011

Убедитесь, что у вас нет .removeProp('disabled') в элементе, который вы пытаетесь отключить.

1 голос
/ 05 мая 2011

Использование .prop('disabled', true).

http://jsfiddle.net/mattball/BaLHf/

...