2013-07-09 15 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は、本質的に構築された無効性質を持っていないあなたが自分で無効にするには、クラスを追加する必要があります。これは、ことに留意すべきである

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

:あなたはこのような入力を無効にすることができ

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

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

そして、あなたの要素にクラスを追加するには:のような

何かラベルを無効にすることはできません。これは、入力を受け付けないためです。 にする場合は、を無効にする必要があります。テキストの色をグレーに変更するだけです。

$("#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

関連する問題