2011-09-07 24 views
15

我有一些標籤,如:當輸入被禁用時,如何更改<label>的顏色?

<label> 
    <input type="checkbox" name="the_name" id="the_name" /> Label text 
    </label> 

,有時被禁用

$("#the_name").prop('disabled', true); 

沒問題,但我想更改標籤的文本顏色,使其更加明顯。是否有可能使用JQuery和/或CSS?

+0

不幸的是這是不可能的CSS。 –

回答

9

您可以選擇您輸入的父母和當時加入到添加CSS規則標籤禁用控制

$("#the_name").prop('disabled', true).parent().css({backgroundColor:'#fcc'}); 

此外,我認爲標籤,就是要使用這樣的:

<label for="the_id">Label text</label> 
<input type="checkbox" name="the_name" id="the_id" /> 

在標籤的for屬性相匹配的目標控制的id

在這種情況下,你可以選擇標籤通過它的for屬性,您認爲合適的應用CSS - 這樣的事情:

$("#the_id").prop('disabled', true); 
$('label[for=the_id]').css({backgroundColor:'#fcc'}); 

見搗鼓演示:http://jsfiddle.net/bq52X/

+1

在'

+4

@ PaulD.Waite:對不起,但那不正確。在'label'標籤內使用'input'意味着您不需要指定'for'屬性,而且實際上是指定可點擊標籤的首選方式。看[這篇文章](http:// stackoverflow。com/questions/6293588/how-to-create-an-html-checkbox-with-a-clickable-label/6293626#6293626)以獲得詳細解釋。 –

+0

那麼每天都是上學的一天。我不知道你可以放棄'for'屬性。 –

2

呀,如果你是想使禁用輸入標籤文本的顏色不同,然後您可以將一個css類添加到<label>標籤。

$("#the_name").prop('disabled', true).parent('label').addClass('disabled-label'); 

然後,您可以通過樣式表而不是腳本文件或html文件控制樣式。

考慮不要將輸入封裝在標籤標籤內,因爲我覺得它可以更好地控制樣式。

0

一個選項:

$("#the_name").parent('label').css('color','silver'); 
14

這可以在CSS中完成,但只有當標籤來輸入標籤之後。例如:

HTML:

<input id="someinput" type="text" /><label for="someinput">Type text:</label> 

CSS:

input[disabled] + label { *whatever style you want when input is disabled* } ; 
+1

一定要透露哪些瀏覽器支持這種css(並非全部都是這樣) –

1

我沒有聽到任何人談起不透明度:

.css('opacity', '0.5'); 
相關問題