グループ化されたアイテムを含むドロップダウンボックスを作成したいと思います。これは、私が作業しているデータベースの参照HTMLフォームです。グループタイトルを選択して特定のグループのすべてのアイテムを選択できる方法はありますか?たとえば、グループタイトルが「ドイツ車」で、「メルセデス」と「アウディ」の項目を持っている場合は、「ドイツ車」をクリックすると、ドイツの自動車会社が選択されます。optgroupグループのタイトルを選択
答えて
オプト・グループにクラスを与えると、そのクラスを選択してその子にアクセスできます。
$('.german-cars').children();
これが利用できない場合は、少し遅いです。すべてのオプトグループをループしてテキストを個別に比較し、その子を取得します。
edit:修正セレクタ。 そしてエラボレーション:次に
あなたが使用したいクリックでそれらを選択する:
$('.german-cars').click(function(e) {
e.preventDefault();
$(this).children().attr('selected', 'selected');
});
要素が複数選択に設定されていると仮定。それ以外の場合は、リスト内の最後の車のみが選択されます。
EDIT 2
フィドル:http://jsfiddle.net/mbChZ/25/
これらの変更は、あなたが探しているように動作しなければなりません。
$(function() {
$('select optgroup').mousedown(function(e) {
e.preventDefault();
if ($(this).children(':selected').length == $(this).children().length) {
$(this).children().attr('selected', null);
} else {
$(this).children().attr('selected', 'selected');
}
});
$('select option').mousedown(function(e) {
e.stopPropagation();
e.preventDefault();
$(this).attr('selected', ($(this).is(':selected'))? null : 'selected');
});
});
私はブラウザはすでにマウスダウンイベントを処理した前に、私たちは、要素の状態を見ることができるのMouseDownするイベントを変更しました。これにより、すべて選択されているかどうかを確認することができ、そうであれば選択するのではなく選択を解除します。そして、そのイベントで伝播を防ぐことができるように、option
のクリックイベントに対しても同じことが行われなければならなかった。
私はあなたがサポートしている場合は、それが古いIEで動作することを確認したいかもしれませんが、これにブラウザの互換性の100%ではない。
信頼できる方法ではありません。 optgroup
は、グループ化オプションのためのものであり、機能に影響するものではありません。しかし、select
要素の代わりに一連のチェックボックスを使用すると、 "ドイツ車"のチェックボックスを使用することができます。その下にインデントされた、ドイツの異なる車種のチェックボックス。
これをさまざまな方法で処理できます。 「ドイツ車」がチェックされていれば、フォームハンドラはドイツ車の各チェックボックスが選択されているかのように機能するように、サーバー側の状況を処理できます。または、「ドイツ車」チェックボックスのクライアントサイドハンドラを追加して、個々のチェックボックスをチェックするようにすることもできます(チェックをはずすとチェックを外す必要があります)。
- 1. 複数選択ドロップダウンwith optgroup
- 2. 選択<optgroup>複数の入力を1つの選択
- 3. vue 1.xで `optgroup`を選択
- 4. optgroupの選択肢としてDjangoモデル
- 5. UIBarButtonItemタイトル選択
- 6. 選択タグでoptgroupのラベルを選択する方法はありますか?
- 7. applescriptファイルのタイトルを選択
- 8. 角度2のoptgroupをサポートするドロップダウンコンポーネントを選択
- 9. 選択グループ
- 10. 選択SQLグループ
- 11. 選択グループ
- 12. MySQLグループの選択
- 13. HTMLを選択/ optgroupをFlexに変換する
- 14. angularjs ngoptionグループと別のoptgroupラベル
- 15. Laravel |カスタムコレクションは、選択2を使用してSELECT2 OPTGROUPとオプション
- 16. jspを使用してoptgroupで選択する
- 17. optgroupで選択値を設定するknockoutjs
- 18. Angularjsで選択されたoptgroup値を取得するには?
- 19. optgroupをselctize.jsで選択した値で表示
- 20. cakephp:オプションとoptgroupなしのシンプルな選択ボックスが必要
- 21. optgroupの選択は週、日に基づいて行います
- 22. カラムのグループを選択
- 23. DataTablesグループ選択/選択解除
- 24. カスタムで同時に誰もOPTGROUP選択し、私はオプションでOPTGROUPの2種類がありますjavascriptの
- 25. MySQLの部分列タイトルを選択
- 26. SQLの選択的グループ化
- 27. 2回のグループ選択
- 28. XSlt個別の選択/グループ
- 29. 選択肢の中のoptgroup全体を簡単に選択する簡単な方法
- 30. EnumDropDownListFor選択タイトルを削除します。
残念ながら、それは動作しません。以下のコードを参照してください: JAVASCRIPT: –
HTML: <ラベルスタイルは= "垂直整列:トップ">自動車会社を選択: –
ちょうどテストされているようです:http://jsfiddle.net/mbChZ/3/オプションをクリックするとoptgroupのクリックイベントも発生することに気付きました。そのため、自分自身に状態を設定した後にクリックハンドラを配置して伝播を停止する必要があります。更新されたフィドル:http://jsfiddle.net/mbChZ/6/ – dennmat