2012-01-18 4 views
2

У меня есть оператор $("#myDiv").attr("disabled","disabled"); Я думал, что после отключения «родительского» контейнера все элементы внутри этого раздела будут отключены. Фактически, я вижу, что текстовое поле выглядит как отключенное, а «delete» не работает внутри, но я могу напечатать его. флажок, который внутри одного и того же div, действительно выглядит отключенным, и я не могу его проверить или снять. Я не уверен, что на 100%, но я думаю, что я уже использовал отключение таким образом, и это сработало, как я ожидал (текстовое поле not typeble). Поэтому я хочу знать, нужно ли явно отключать для текстовых полей или, возможно, некоторые другие CSS-перерывы, что я ожидаю.Отключить элементы внутри div

UPDATE: Я знаю, как установить отключить явно для элементов, которые мне нужны, я просто не хочу карапуз это делать и то, что я спрашиваю, что если это единственный способ, чтобы отключить его, или текстовое поле может работать точно как флажок (без явного отключения его), и только некоторые CSS нарушают это поведение.

ответ

5

Насколько им известно, что это не кросс-браузер и не действительная разметка. Лучший вариант должен был бы сделать что-то вроде

$('#myDiv').find('input,textarea,select').attr("disabled", true); 

Это должно найти все элементы формы внутри DIV и применить ТЭН DISABLED флаг напрямую

Edit: или даже просто

$('input,textarea,select', '#myDiv').attr("disabled", true); 
+1

Или Jus t $ ("# myDiv *"). attr ("disabled", "disabled"); – giker

+0

@Lee, thx, но я знаю, как установить его явно, что я прошу, если это единственный способ отключить его, или текстовое поле может работать точно так же, как флажок, и только некоторые CSS нарушают это поведение. –

+0

Фактически '$ ('# myDiv'). Find (': input') ...' кажется, самый приятный способ. – kapa

1

Вы можете использовать :input селектор:

$("#myDiv :input").attr("disabled", true);

Смежные вопросы