में सभी विकल्पों का चयन करें मेरे पास एस समूह के साथ select
तत्व है। option
पर क्लिक होने पर मुझे optgroup
में सभी option
एस चुनने (या अचयनित) करने की आवश्यकता है। मुझे एक साथ कई optgroup
का चयन करने में सक्षम होना चाहिए।ऑप्टग्रुप
तरह से मैं यह काम करना चाहते हैं यह है:
- कुछ भी नहीं चुना जाता है, मैं एक विकल्प पर क्लिक करें और चयनित एक ही optgroup में सभी विकल्पों को प्राप्त करना चाहते हैं।
- यदि एक या अधिक विकल्प समूह पहले ही चुने गए हैं, तो मैं किसी अन्य विकल्प समूह में एक विकल्प क्लिक करना चाहता हूं और इसके बजाय उन सभी विकल्पों को चुना गया है।
- यदि एक या अधिक विकल्प समूह पहले से ही चुने गए हैं, तो मैं एक गैर-चयनित ऑप्टग्रुप में एक विकल्प को Ctrl-क्लिक करने में सक्षम होना चाहता हूं और उस विकल्प समूह में भी सभी विकल्प चुने गए हैं।
- यदि एक या अधिक विकल्प समूह पहले ही चुने गए हैं, तो मैं किसी चयनित ऑप्टग्रुप में एक विकल्प को Ctrl-क्लिक करने में सक्षम होना चाहता हूं और उस समूह में सभी विकल्पों को अचयनित करना चाहता हूं।
स्टैक ओवरफ़्लो पर अन्य उत्तर को देखते हुए मैं निम्नलिखित बनाया:
HTML:
<select multiple="multiple" size="10">
<optgroup label="Queen">
<option value="Mercury">Freddie</option>
<option value="May">Brian</option>
<option value="Taylor">Roger</option>
<option value="Deacon">John</option>
</optgroup>
<optgroup label="Pink Floyd">
<option value="Waters">Roger</option>
<option value="Gilmour">David</option>
<option value="Mason">Nick</option>
<option value="Wright">Richard</option>
</optgroup>
</select>
jQuery:
$('select').click(selectSiblings);
function selectSiblings(ev) {
var clickedOption = $(ev.target);
var siblings = clickedOption.siblings();
if (clickedOption.is(":selected")) {
siblings.attr("selected", "selected");
} else {
siblings.removeAttr("selected");
}
}
मैं यहाँ एक उदाहरण बना दिया: http://jsfiddle.net/mflodin/Ndkct/ (दुख की बात है jsFiddle अब IE8 का समर्थन नहीं कर रहा है।)
यह फ़ायरफ़ॉक्स (16.0) में अपेक्षित काम करता है, लेकिन आईई 8 में यह बिल्कुल काम नहीं करता है। अन्य उत्तरों से मुझे पता चला है कि IE8 click
ईवेंट optgroup
या option
पर संभाल नहीं सकता है, यही कारण है कि मैं इसे select
पर बांधता हूं और फिर $(ev.target)
का उपयोग करता हूं। लेकिन आईई 8 में $(ev.target)
अभी भी पूरे select
पर इंगित करता है और option
पर क्लिक नहीं किया गया था। मैं कैसे पता लगा सकता हूं कि option
(या optgroup
युक्त) जिसे क्लिक किया गया था और क्या इसे चुना गया था या अचयनित किया गया था?
एक और अप्रत्याशित व्यवहार, लेकिन तुलना में मामूली, यह है कि क्रोम (20.0) में अचयनित नहीं होता है जब तक कि माउस select
छोड़ देता है। क्या इस के लिए कोई कामकाज जानता है?
यह मैं क्या चाहते हो के साथ कोई संबंध नहीं है (इस बेला http://jsfiddle.net/Ndkct/44/ इसे और अधिक उपयोगी बनाने के लिए एक माता पिता चेकबॉक्स कहते हैं) है। मैं सभी 'विकल्प' – mflodin