2013-07-09 57 views
13

如何禁用jQuery標籤?我想:如何使用jQuery禁用標籤?

$('#some-id').prop('disabled', true);

,但它不是變灰。

我的HTML是:<label for="some-id">Label Here</label><input id="some-id"/>

+0

你必須設置一個css規則來灰掉標籤 –

+0

已經問過在stackoverflow中:http://stackoverflow.com/questions/7330541/how-can-i-change-a-labels-color-when-its -input-is-disabled – mguimard

+1

當您禁用標籤時,標籤不會自動更改顏色。你需要在CSS中定義一個對應的類。 –

回答

17

labels沒有本質上內置了禁止財產你需要添加一個類來自己禁用它們。

喜歡的東西:

.disabled { 
    color: darkgrey; 
    background-color: grey; 
} 

而到了類添加到您的元素:

$('#some-id').addClass('disabled'); 
1

您可以禁用像這樣的輸入:

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

應當指出的是,您不能禁用標籤,因爲它不接受任何開始的輸入。如果你想要它看起來禁用,你可能會考慮只是將文本的顏色更改爲灰色。

$("#test").css("color", "#666"); 
+0

@Downvoter:謹慎解釋? –

+2

那個downvote是在你編輯之前,可能是因爲你不能使用'.attr()'或其他任何東西來禁用標籤 – Bojangles

4

要禁用標籤,請禁用它所關聯的表單控件。

雖然這不會改變標籤的外觀,但您必須更改適用於該標籤的CSS。最好通過從元素中添加(或刪除)一個類來完成(並且具有與該類匹配的預先存在的CSS規則集)。

0

當您禁用輸入時,您應該將禁用的類添加到標籤。你可以不喜歡這樣,如果你想保留所有的代碼在同一個地方:

$('#some-id, [for="some-id"]').prop('disabled', true).addClass('disabled'); 

工作JSFiddle example