0

フォームで複数のラジオ ボタン セットを使用しています。次のようになります。

<input name='project[0]' type='radio' />
<input name='project[0]' type='radio' />
<input name='project[0]' type='radio' />

<input name='project[1]' type='radio' />
<input name='project[1]' type='radio' />
<input name='project[1]' type='radio' />

次の構文も使用できます。

<input name='project_0' type='radio' />
<input name='project_0' type='radio' />
<input name='project_0' type='radio' />

<input name='project_1' type='radio' />
<input name='project_1' type='radio' />
<input name='project_1' type='radio' />

ボタンのすべてのセットがjQueryを使用してチェックされているかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

2
if ($('input[type="radio"][name^="project_"]:checked').length === 2) {
   //ok
} else //not ok

は で始まる2ラジオ グループの数project_ですname

デモ

ユーザーは無線セットを未決定 (選択なし) の状態に簡単に戻すことができないため、W3C は常に事前に選択されたオプションを残すことを推奨しています。HTML4.01 フォーム仕様から:

同じコントロール名を共有するセット内のラジオ ボタンが最初に「オン」でない場合、どのコントロールが最初に「オン」であるかを選択するためのユーザー エージェントの動作は未定義です。ノート。既存の実装ではこのケースの扱いが異なるため、現在の仕様は RFC 1866 ( [RFC1866]セクション 8.1.2.4) とは異なります。

常に、セット内のラジオ ボタンの 1 つだけがオンになっています。ラジオ ボタンのセットのどの要素も「CHECKED」を指定しない場合、ユーザー エージェントは最初にセットの最初のラジオ ボタンをチェックする必要があります。

ユーザー エージェントの動作は異なるため、作成者はラジオ ボタンの各セットで最初に「オン」になっていることを確認する必要があります。

これにより、必要なフロントエンド チェックの量も削減されます。ただし、ラジオのチェックを強制する主要なブラウザーは覚えていません。現在のHTML5.1 Forms 仕様では、すべてのラジオを最初はチェックしないままにする機能が標準化されています。

注: ラジオ ボタン グループ内のラジオ ボタンがドキュメントに挿入されたときにチェックされていない場合は、いずれかのラジオ ボタンがチェックされるまで (ユーザーまたは脚本)。

于 2013-02-05T09:55:29.603 に答える