2009-04-23 78 views

回答

23

如何使用兒童選擇器?

$("#myfieldeset").children().attr("disabled", "disabled"); 

還可以過濾孩子的選擇:

$("#myfieldeset").children("a,input"); 
+0

謝謝!我使用了類似的東西,但是你的解釋對於我沒有做過的其他事情會很有用! :-) – AndreMiranda 2009-04-23 13:12:03

+6

在jQuery 1.6,[它建議使用`.prop()`代替`.attr()`設置屬性的值](http://api.jquery.com/prop/#prop2 ),這可能是這樣的:`.prop(「已禁用」,真)` – 2013-01-24 05:53:07

3

假設你要禁用任何輸入元素,然後將下面的代碼應該做你所需要的字段集設置一個類=「disableMe」 :

$('fieldset.disableMe :input').attr('disabled', true) 
0

如果由於某種原因,你不能添加一個ID字段集(這通常是首選),你總是可以做到這一點,以隱藏所有它的子元素:

$('fieldset:first > *').attr('disabled','disabled'); 
2

你爲什麼不只是使用:

$("#myfieldeset").attr("disabled", "disabled");

它爲我工作。它很好地禁用了所有的兒童輸入。

編輯:請注意,禁用屬性只能應用於HTML5中的fieldset元素(請參閱merryprankster註釋)。奇怪的是,它可以與其他瀏覽器一起使用,而不僅僅是Firefox和Opera,例如Chrome和Internet Explorer(經過測試的IE7和IE8)。

0

試試這個代碼片段:

$("#myfieldeset").attr("disabled", "disabled"); 
2

除了別人發佈:

使用.prop()而不是.attr()

$('#myfieldset').prop('disabled',true) 

它是相對於DOM更正確。

它似乎並沒有很好地驗證。 firefox和chrome都不允許我在禁用的字段集中提交未填充的「必需」輸入的表單,但不要提供關於如何填寫表單的任何說明。

6

您可以設置fieldsetdisabled屬性。

MDN來自:

如果此布爾屬性被設置,即是它的後代,除了它的第一任選元素的後代的表單控件,被禁用的,即,不可編輯。他們不會收到任何瀏覽事件,如鼠標點擊或與焦點相關的事件。通常瀏覽器顯示這樣的控件爲灰色。


HTML<fieldset disabled> ... </fieldset>

JQuery的$('#myfieldset').prop('disabled', true);

JSdocument.getElementById('#myFieldset').disabled = true;


重要提示這不正確的Internet Explorer由於一對夫婦的錯誤工作,但效果很好只是在其他地方(包括邊緣)。

IE瀏覽器漏洞:12

TL;博士:文本和文件輸入不正確禁用,用戶仍然可以與他們進行互動

如果這是一個大忌,你需要進入字段集和這裏其他的答案中描述把disabled它的後代。


瀏覽器支持信息http://caniuse.com/#feat=fieldset-disabled

相關問題