2011-01-18 13 views
1

jQueryに非常に奇妙な問題があります。jQueryで奇妙な問題が発生する

問題:

$("#button-prev").attr("disabled", "disabled"); 

これは動作しません。私はFirebugのに確認した場合、私は要素として「」=無効参照

しかし、たとえば、あなたが期待するべきであるとして、この

$("#button-prev").attr("disablea", "disabled"); 

作品を属性。それが何であるか誰でも考えられますか?

答えて

2

disabledは、ブールプロパティです。したがって、truthyの値が設定されていれば十分です。

<button disabled>foo</button> 

もほとんどのブラウザで動作します。あなたはどちらかのように、コールを完全に

$('#button-prev').removeAttr('disabled'); 

を使用してプロパティを削除するか、それはかなり混乱しがちな間違いだとfalse/0

$('#button-prev').attr('disabled', false); 

に明示的に設定し、検討する必要があり

$(element).attr('disabled', 'false'); 

も無効になります。あなたがに合格したので、それはtruthy値です。

さらに詳細:http://www.w3.org/TR/html401/interact/forms.html#h-17.12.1

+0

を使用しない方が簡単だと思ういくつかのoccassionsの一つである

document.getElementById('button-prev').disabled = true; 

くらい簡単です。私が$( '#button-prev')を実行すると、attr( 'disabled'、false);完全なプロパティは削除されます。 $( '#button-prev')。attr( 'disabled'、true);または他の真の値と比較すると、私はこれをFirebugで見ることができますdisabled = "" – Derk

+0

@Derk:はいこれは正しい動作です。私が説明したように、プロパティはそれがちょうど "そこ"であれば完全に満たされ、値は重要ではありません。 – jAndy

+0

私が試した価値は何でも、要素は無効にされていません – Derk

0

私はそのためのattrがあると信じて "true" または "false" ... 試してみてください。$( "#ボタン-PREV")のattr( "無効"、真) ; "button-prev"がボタンのIDであることを確認してください。

1

のボタンがの場合、試しましたか?私はこのページの "投稿を投稿する"ボタンで試してみましたが、FirebugではHTMLタブに何も表示されませんが、DOMタブでは無効な属性が設定されています(そして、 。昔ながらのJavaScriptで

+0

私は試しましたが、ボタンは無効になっていません。 – Derk

0

、これは私は私がボタンを無効にするjQueryの

+0

これは私にとってはうまくいかず、おそらくこれもjQueryが内部的に – Derk

関連する問題