2012-10-15 13 views
36

हाय सब मैं jquery-select2 के साथ अपने ड्रॉपडाउन को बाध्य कर रहा हूं। यह ठीक काम कर रहा है लेकिन अब मुझे Jquery-Select2 का उपयोग कर अपने मल्टी-वैल्यू सिलेक्टबॉक्स को बांधना होगा।Jquery-Select2 में बहु-मान चयन में चयनित मान कैसे सेट करें।?

मेरे Dropdwon

<div class="divright"> 
         <select id="drp_Books_Ill_Illustrations" 
          class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" 
          multiple=""> 
          <option value=" ">No illustrations</option> 
          <option value="a">Illustrations</option> 
          <option value="b">Maps</option> 
          <option value="c">Portraits</option> 


         </select> 
        </div> 
इस लिंक http://ivaynberg.github.com/select2/ मैं उपयोग कर रहा हूँ Mutiple मूल्य का चयन करें बॉक्स से

, मैं

$("dropdownid").Select2() 

अपनी कार्यशील ठीक के साथ मेरी dropdwon बाध्य कर सकते हैं, लेकिन अब मैं पाने के लिए है कि चयनित की जरूरत है संपादन मोड पर मेरे ड्रॉपडाउन में मूल्य तो मैं इस उदाहरण का उपयोग कर रहा हूं

$(".Books_Illustrations").select2("val", ["a", "c"]); 

यह काम कर रहा है लेकिन मैं अपनी पसंद को कैसे ठीक कर सकता हूं, क्योंकि उपयोगकर्ता कुछ भी पसंद कर सकता है, इसलिए मैं एक सी नहीं लिख सकता, इसलिए मुझे अपने चयनित मूल्य को गतिशील रूप से संपादन मोड पर बाध्य करने की आवश्यकता क्यों है।

मुझे लगता है कि अब आप सभी मेरी आवश्यकता के साथ स्पष्ट हैं। अगर आपको और मंजूरी की आवश्यकता है तो कृपया मुझे बताएं।

+0

आप एक पाठ बॉक्स में सभी चयनित मूल्य की जरूरत है jQuery में .select2 निर्दिष्ट करने के लिए, बस कोई जरूरत नहीं है है? –

+0

मुझे अपने मल्टी-वैल्यू शो को संपादित मोड –

+0

पर मेरा चयनित मूल्य दिखाना चाहिए, मुझे आपको समझा सकता है कि मुझे लगता है कि मैं आपकी मदद कर सकता हूं –

उत्तर

41

खैर यूआरएल वास्तव में अपने केवल $ .प्रत्येक जरूरत है सभी मूल्यों को पाने के लिए, यह आप jsfiddle.net/NdQbw/5

<div class="divright"> 
      <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple=""> 
       <option value=" ">No illustrations</option> 
       <option value="a" selected>Illustrations</option> 
       <option value="b">Maps</option> 
       <option value="c" selected>selectedPortraits</option> 
      </select> 
    </div> 

<div class="divright"> 
     <select id="drp_Books_Ill_Illustrations1" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple=""> 
      <option value=" ">No illustrations</option> 
      <option value="a">Illustrations</option> 
      <option value="b">Maps</option> 
      <option value="c">selectedPortraits</option> 
     </select> 
</div> 

<button class="getValue">Get Value</button> 
<button class="setValue"> Set value </button> 

<div class="divright"> 
     <select id="drp_Books_Ill_Illustrations2" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple=""> 
      <option value=" ">No illustrations</option> 
      <option value="a" selected>Illustrations</option> 
      <option value="b">Maps</option> 
      <option value="c" selected>selectedPortraits</option> 
     </select> 
</div> 

<div class="divright"> 
     <select id="drp_Books_Ill_Illustrations3" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple=""> 
      <option value=" ">No illustrations</option> 
      <option value="a">Illustrations</option> 
      <option value="b">Maps</option> 
      <option value="c">selectedPortraits</option> 
     </select> 
</div> 

<button class="getValue1">Get Value</button> 
<button class="setValue1"> Set value </button> 

स्क्रिप्ट में मदद मिलेगी:

var selectedValues = new Array(); 
    selectedValues[0] = "a"; 
    selectedValues[1] = "c"; 

$(".getValue").click(function() { 
    alert($(".leaderMultiSelctdropdown").val()); 
}); 
$(".setValue").click(function() { 
    $(".Books_Illustrations").val(selectedValues); 
}); 

$('#drp_Books_Ill_Illustrations2, #drp_Books_Ill_Illustrations3').select2(); 


$(".getValue1").click(function() { 
    alert($(".leaderMultiSelctdropdown").val()); 
}); 

$(".setValue1").click(function() { 
    //You need a id for set values 
    $.each($(".Books_Illustrations"), function(){ 
      $(this).select2('val', selectedValues); 
    }); 
}); 
+0

असल में यह बात यह है कि हम एक स्ट्रिंग के रूप में मूल्य प्राप्त कर रहे हैं जो सरणी के रूप में नहीं है, इसलिए मैं इसका उपयोग क्यों कर रहा हूं केवल चयनित मान को फ़िल्टर करने के लिए चेक –

-1

नीचे मल्टीइलेक्ट फ़ंक्शन का उपयोग करें।

$('#drp_Books_Ill_Illustrations').multiSelect('select', 'value'); 
+0

मूल्य खोल के बारे में क्या मैं देता हूं, सी –

+0

आपका कोड –

12

तो मैं इसे लेता हूं कि आप 2 विकल्प डिफ़ॉल्ट रूप से चुने गए हैं, और उसके बाद इसका मूल्य प्राप्त करें? यदि ऐसा है तो:

http://jsfiddle.net/NdQbw/1/

<div class="divright"> 
    <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple=""> 
     <option value=" ">No illustrations</option> 
     <option value="a" selected>Illustrations</option> 
     <option value="b">Maps</option> 
     <option value="c" selected>selectedPortraits</option> 
    </select> 
</div> 

और प्राप्त करने के लिए मूल्य:

$(".leaderMultiSelctdropdown").val(["a", "c"]); 

तुम भी एक सरणी का उपयोग कर सकते मूल्यों को निर्धारित करने के लिए:

alert($(".leaderMultiSelctdropdown").val()); 

मान सेट करने के लिए:

var selectedValues = new Array(); 
selectedValues[0] = "a"; 
selectedValues[1] = "c"; 

$(".Books_Illustrations").val(selectedValues); 

http://jsfiddle.net/NdQbw/4/

+0

हाँ काम नहीं कर रहा है, हम इसे इस तरह प्राप्त कर सकते हैं, लेकिन मैं संपादन मोड पर सेट चयनित मूल्य के बारे में बात कर रहा हूं, नोट मोड –

+0

से मूल्य प्राप्त करने का नोट अपडेट किया गया उत्तर: $ ("। नेतामल्टी सेलडड्रॉपडाउन")। वैल (["ए", "सी"]); – Geert

+0

जैमिनन आपका कोड ठीक है लेकिन हम उस चयनित मान को कैसे ठीक कर सकते हैं, सी इसे गतिशील रूप से –

3

बस इसे देखें, इससे मदद मिलेगी।

var valoresArea=VALUES // it has the multiple values to set, separated by comma 
var arrayArea = valoresArea.split(','); 
$('#area').val(arrayArea); 

है- link

0

इतनी सारी चीज़ें करने की आवश्यकता नहीं है। एकाधिक चयनvar चयनितval = "1,2,3" का उपयोग करके सेट मान के लिए ; // अगर पहले 3 उत्पादों का चयन किया जाता है। $ ('# ddlProduct')।वैल (selectedvalue);

3

आप एक array में चुने गए मानों जोड़ सकते हैं और डिफ़ॉल्ट चयन

उदाहरण के लिए मूल्य के रूप में सेट कर सकते हैं:

var selectedItems =[]; 
selectedItems.push("your selected items"); 
.. 
$('#drp_Books_Ill_Illustrations').select2('val',selectedItems); 

इस प्रयास करें, यह निश्चित रूप से काम करना चाहिए!

+0

परफेक्ट! यह काम ! –

4
var valoresArea=VALUES 
// it has the multiple values to set separated by comma 
var arrayArea = valoresArea.split(','); 
$('#area').select2('val',arrayArea); 
+0

आपके उत्तर के लिए धन्यवाद। हालांकि, यह बेहतर होगा यदि आप विवरण जोड़ सकें कि आपका कोड ब्लॉक इस मुद्दे को हल क्यों करता है। यह इस और भविष्य के उत्तरों को बेहतर बनाने के लिए एक सुझाव है। धन्यवाद! –

+0

अच्छा !!! धन्यवाद बीआर –

0

Select2 लाइब्रेरी का उपयोग करना वहाँ मान सेट करने के 2 तरीके 1. जब एकल मान मौजूद है आप स्ट्रिंग के रूप में इसे पारित कर सकते हैं

$("#elementid").select2.("val","valueTobeset") 

2. जब आप एकाधिक चयन करें विकल्प के साथ Select2 उपयोग कर रहे हैं आप मूल्यों की एक सरणी Select2 को पारित कर सकते हैं और उन सभी मूल्यों

var arrayOfValues = ["a","c"] 
$("#elementid").select2.("val",arrayOfValues) 

का गठन किया जाएगा याद है कि आप एक सरणी पारित करके एकाधिक चयन करें पर एकल मान सेट कर सकते हैं कि यह भी

var arrayOfValues = ["a"] 
$("#elementid").select2.("val",arrayOfValues) 
+0

आपके कोड में कुछ वाक्यविन्यास त्रुटि हैं। उदाहरण के लिए "।" चयन 2 के बाद साइन करें - चयन 2। ("वैल", arrayOfValues)) –

0

यह काम नहीं करता है। केवल एक मान कभी पूर्व चयन किया जाता है, भले ही दोनों विकल्पों की सूची केवल प्रथम में उपलब्ध हैं दिखाया गया है ('#searchproject').select2('val', ['New Co-location','Expansion']);

2
This is with reference to the original question 
$('select').val(['a','c']); 
$('select').trigger('change'); 
2

Select2 jQuery पुस्तकालय का उपयोग करना:

$('#selector').val(arrayOfValues).trigger('change') 
0

यहाँ एक लाइन सरल समाधान है।

पूर्व: var ArrayValue = ["a","b","c"];

$("#select2id").select2("val",(ArrayValue).split(',')); 
0

मैं इस पोस्ट पुरानी है लेकिन कैसे Select2 अब काम करता है और इस सवाल का जवाब अब अत्यंत सरल है में परिवर्तन किए गए हैं मिलता है।

सेट एक बहु Select2 में मूल्यों के रूप में इस प्रकार है

$('#Books_Illustrations').val([1,2,3]).change(); 

अब .val

संबंधित मुद्दे