我想創建一個包含分組項目的下拉框。它用於我正在使用的數據庫查找HTML表單。有沒有辦法可以選擇組標題,從而選擇該組中的所有項目?例如,如果組標題是「德國汽車」,並且有「奔馳」和「奧迪」這兩個項目,點擊「德國汽車」後,兩家德國汽車公司應該被選中。optgroup選擇組的標題
4
A
回答
1
如果你給你的選擇課組,你可以選擇課程,然後訪問它的孩子。
$('.german-cars').children();
如果這是不可用的替代是有點慢。當你遍歷所有的optgroups並單獨比較他們的文本,然後抓住那些孩子。
編輯:修復選擇器。 而詮:
然後選擇他們點擊你會使用:
$('.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,所以我們可以看到元素的狀態之前的瀏覽器已經處理的mousedown事件。這使我們能夠檢查它們是否全部被選中,如果是,則取消選擇而不是選擇。並且option
的點擊事件也必須完成,以防止該事件傳播。
雖然您可能想要確保它在較早的IE瀏覽器中運行,但如果您支持它,我並不是百分之百的確定瀏覽器兼容性。
0
沒有任何可靠的方式。 optgroup
僅用於分組選項,而不影響功能。但是您可以使用一組複選框而不是select
元素,然後您可以選擇「德國汽車」複選框,例如在其下面縮進,用於不同德國車型的複選框。
然後,您可以通過各種方式處理此問題。您可以處理服務器端的情況,這樣如果「德國汽車」已被選中,表單處理程序的行爲就好像選擇了德國汽車的每個複選框。或者,您還可以爲「德國汽車」複選框設置一個客戶端處理程序,以便檢查它是否檢查單個複選框(但是如果未選中,應該取消選中它們)?
相關問題
- 1. jQuery的選擇2顯示OPTGROUP標籤
- 2. 選擇一個OPTGROUP標題作爲可選項
- 3. ZF在選擇中禁用optgroup標籤
- 4. Angular.js用ngOptions選擇:標記optgroup
- 5. 展開/收起多選擇標籤(OPTGROUP)
- 6. Jquery引導多選擇optgroup選擇
- 7. Jquery - 在select中選擇optgroup
- 8. 獲取選擇選項的指數OPTGROUP
- 9. 選擇optgroup中的所有選項
- 10. 有沒有辦法在select標籤中選擇optgroup的標籤?
- 11. 使用Selenium在optgroup上選擇選項
- 12. 從JQUERY選項中選擇元素OptGroup
- 13. 選擇具有嵌入在while循環中的Optgroup的組
- 14. 將struts2的列表選擇爲optgroup
- 15. 使用json的optgroup創建html選擇
- 16. jQuery的OPTGROUP和選擇價值
- 17. 在optgroup中多選 - 事件的目標是optgroup
- 18. 如何更改選擇框的樣式'optgroup標籤
- 19. 在Angular 2中選擇支持optgroup的下拉組件
- 20. jquery獲取選項OPTGROUP的標籤
- 21. 分組嵌套選擇器(標題)(CSS)
- 22. Jqgrid - 選擇組標題與Ajax事件?
- 23. 在特定OPTGROUP選擇一個值
- 24. 使用optgroup設置選擇值knockoutjs
- 25. 在vue 1.x中選擇`optgroup`
- 26. 將HTML選擇/ optgroup轉換爲Flex
- 27. 使用jsp創建選擇使用optgroup
- 28. Symfony2中形成與選擇不OPTGROUP
- 29. Select2默認從optgroup中選擇
- 30. 通過optgroup刪除選擇框值
不幸的是,它不起作用。請參考下面我的代碼: JAVASCRIPT: <腳本類型= 「文/ JavaScript的」 SRC =「http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js 「> $(」optgroup.german_cars「)。children();點擊(功能(e){ e.preventDefault(); \t $(this).children()。ATTR( '選擇', '選擇'); }); – 2012-02-15 17:31:41
HTML: <標籤樣式= 「垂直對齊:頂部」>選擇汽車公司: <選擇多個= 「多個」 大小= 「10」 ID = '部分'>
嗯,剛剛測試似乎工作正常:http://jsfiddle.net/mbChZ/3/只是注意到,單擊選項也觸發optgroup點擊事件。所以你還需要在這些上添加一個點擊處理程序,並在你自己設置狀態後停止傳播。更新小提琴:http://jsfiddle.net/mbChZ/6/ – dennmat 2012-02-15 17:39:30