19

ページに2 つ<fieldset>の s がありますが、そのうちの 1 つは、ユーザーの選択に応じてすべての要素を無効にする必要があります。

フィールドセットには、テキスト入力、選択、およびリンクが含まれています。それらを1つずつ無効にする代わりに、それらすべてを無効にする方法はありますか?

4

6 に答える 6

26

子セレクターの使用についてはどうですか?

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

子の選択をフィルタリングすることもできます。

$("#myfieldeset").children("a,input");
于 2009-04-23T13:07:35.290 に答える
3

入力要素を無効にするフィールドセットに class="disableMe" を設定すると仮定すると、次のコードは必要なことを行う必要があります。

$('fieldset.disableMe :input').attr('disabled', true)
于 2009-04-23T13:08:06.880 に答える
3

なぜあなただ​​けを使用しないのですか:

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

それは私のために働いた。すべての子入力を適切に無効にしました。

編集: disabled 属性は、HTML5 でのみ fieldset 要素に適用できることに注意してください (merryprankster のコメントを参照)。奇妙なことに、Chrome や Internet Explorer (IE7 および IE8 でテスト済み) など、Firefox や Opera 以外のブラウザーでも動作します。

于 2012-11-05T14:45:39.313 に答える
2

他の人が投稿したものに加えて:

.prop()の代わりに使用.attr():

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

DOMに関してはより正確です。

また、検証ではうまく機能しないようです。firefox と chrome の両方で、無効なフィールドセットに「必須」入力が入力されていないフォームを送信することはできませんが、フォームを完了する方法についての指示もありません。

于 2014-08-29T10:18:00.457 に答える
0

何らかの理由でフィールドセットに ID を追加できない場合 (通常はこれが推奨されます)、いつでもこれを実行して、すべての子要素を非表示にすることができます。

$('fieldset:first > *').attr('disabled','disabled');
于 2009-04-23T13:15:24.197 に答える