बूटस्ट्रैप मोडल में एम्बेडेड होने पर Select2 काम नहीं करता है


338

जब मैं बूटस्ट्रैप मोडल में एक चयन 2 (इनपुट) का उपयोग करता हूं, तो मैं इसमें कुछ भी नहीं लिख सकता। यह विकलांगों जैसा है? मोडल के बाहर select2 ठीक काम करता है।

यहां छवि विवरण दर्ज करें

काम करने का उदाहरण: http://jsfiddle.net/byJy8/1/ कोड:

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Panel</h3>
  </div>
  <div class="modal-body" style="max-height: 800px">


<form class="form-horizontal">

<!-- Text input-->
<div class="control-group">
  <label class="control-label" for="vdn_number">Numer</label>
  <div class="controls">
     <!-- seleect2 -->
    <input name="vdn_number" type="hidden" id="vdn_number"  class="input-large" required=""  />
  </div>
</div>

  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

और js:

$("#vdn_number").select2({
    placeholder: "00000",
    minimumInputLength: 2,
    ajax: {
        url: "getAjaxData/",
        dataType: 'json',
        type: "POST",
        data: function (term, page) {
            return {
                q: term, // search term
                col: 'vdn'
            };
        },
        results: function (data) { // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to alter remote JSON data
            return {results: data};
        }
    }
});

जवाब:

यहाँ आप एक त्वरित सुधार पा सकते हैं

और यहां 'सही तरीका' है: बूटस्ट्रैप मोडल में एम्बेडेड होने पर Select2 काम नहीं करता है


1
यही है, तत्व से विशेषता टैबइंडेक्स = "- 1" को हटा रहा है।
निकित बारोचिया

dboswell का जवाब सही समाधान है, लेकिन, dropdownParentरूट डिव पर नहीं होना चाहिए, लेकिन गहरा, उदाहरण के लिए वर्ग के साथ div के लिए modal-content, अन्यथा ड्रॉपडाउन स्थिति खराब हो जाती है जब मोडल स्क्रॉल करते हैं।
शाहीन दोहान

जवाबों:


606

ठीक है, मुझे यह काम करने के लिए मिला है।

परिवर्तन

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Panel</h3>
  </div>
  <div class="modal-body" style="max-height: 800px">

सेवा

<div id="myModal" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Panel</h3>
  </div>
  <div class="modal-body" style="max-height: 800px">

(निकालें tabindex = "- 1" मोडल से)


22
एक और उपाय हो सकता है? क्योंकि मोडल विंडो तो Esc कुंजी द्वारा बंद नहीं होगी।
woto

19
tabindex = "- 1" को हटाने से मुझे काम नहीं मिला। मैंने सिर्फ <div class = "modal-body"> से <div class = "modal-body" शैली = "बहिर्वाह: छिपा हुआ;">
बदला लिया है

39
आप कैसे है कि खोज की?
DontVoteMeDown 20

6
मैंने सभी विकल्पों की कोशिश की है, लेकिन मेरे लिए कुछ भी काम नहीं करता है। मैं
गिरीश गुप्ता

7
धन्यवाद! 4 साल हो गए हैं और यह अभी भी एक वैध फिक्स है।
रेखा जूल

248

Select2 v4 के लिए:

dropdownParentHTML बॉडी के बजाय मोडल डायलॉग के लिए ड्रॉपडाउन संलग्न करने के लिए उपयोग करें ।

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        <select id="select2insidemodal" multiple="multiple">
          <option value="AL">Alabama</option>
            ...
          <option value="WY">Wyoming</option>
        </select>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>


<script>

$(document).ready(function() {
  $("#select2insidemodal").select2({
    dropdownParent: $("#myModal")
  });
});

</script>

यह Select2 ड्रॉपडाउन को संलग्न करेगा इसलिए यह HTML बॉडी (डिफ़ॉल्ट) के बजाय मोडल के DOM के भीतर आता है। Https://select2.org/dropdown#dropdown-placement देखें


12
पुष्टि की, यह एक आकर्षण की तरह काम कर रहा है और इस समस्या का सबसे अच्छा समाधान प्रतीत होता है!
17

29
इसने मेरे लिए काम किया (v4.0.2 के साथ), लेकिन मुझे इसका इस्तेमाल करना था dropdownParent: $("#myModal"), नहीं dropdownParent: "#myModal"
सेक्सन ड्रूस

6
एफडब्ल्यूआईडब्ल्यू, मेरे मामले में मुझे ड्रॉपडालपेंट को मोडल के शरीर में स्थापित करने की आवश्यकता थी, इसे मोडल के साथ संलग्न करने से जेड-इंडेक्स को पर्याप्त रूप से ऊपर नहीं लाया गया। उदा। ड्रॉपडेंटपेंट: $ ('। मोडल-बॉडी', '# मैमॉडल')
ड्रूइन्मेनेट्स

1
यह tabindex को हटाने के बिना पूरी तरह से ठीक काम करता है। +1
सैम्मरी

1
@DrewInTheMountains मेरे पास भी dropdownParentमोडल के मूल में सेट करने के मुद्दे थे , यह वास्तव में शरीर को चुनना बेहतर है, अन्यथा स्क्रॉल करते समय आपको वास्तव में खराब स्थिति वाले कीड़े मिलते हैं। मैंने कक्षा के साथ div को सेट किया modal-contentऔर यह एक आकर्षण की तरह काम करता है!
शाहीन दोहान

193

मैं चयन 2 के लिए github पर इसका एक समाधान पाया

https://github.com/ivaynberg/select2/issues/1436

बूटस्ट्रैप 3 के लिए, समाधान है:

$.fn.modal.Constructor.prototype.enforceFocus = function() {};

बूटस्ट्रैप 4 ने enforceFocusविधि का नाम बदल दिया _enforceFocus, इसलिए आपको इसके बजाय पैच करना होगा:

$.fn.modal.Constructor.prototype._enforceFocus = function() {};

ऊपर दिए गए लिंक से नकल की व्याख्या:

बूटस्ट्रैप एक श्रोता को फ़ोकसिन घटना में पंजीकृत करता है, जो यह जाँचता है कि फ़ोकस किया गया तत्व या तो ओवरले है या उसका कोई वंशज है - यदि यह ओवरले पर केवल रीफ़्लेक्स नहीं करता है। Select2 ड्रॉपडाउन के शरीर के साथ संलग्न होने के कारण यह प्रभावी रूप से आपको टेक्स्टफील्ड में कुछ भी दर्ज करने से रोकता है।

आप enforceFocus फ़ंक्शन को अधिलेखित करके इसे त्वरित कर सकते हैं जो मोडल पर ईवेंट को पंजीकृत करता है


1
@pymarco जवाब के रूप में लेने के लिए थोड़ा पहले होना चाहिए था! धन्यवाद आदमी, वास्तव में कष्टप्रद समस्या का वास्तविक उत्तर प्रदान करने के लिए।
इल्टर

3
@pymarco यह सही समाधान है। मेरा समय बचाने के लिए धन्यवाद।
VKPRO

2
आपने मुझे एक ऐसे मुद्दे के साथ समय का भार बचाया है जो हमेशा पीछे नहीं रहता है। धन्यवाद!
user3036342

1
यह मेरे लिए काम किया !! मैं गिथब में चयन 2 के लिए थ्रेड्स के माध्यम से ब्राउज़ और ब्राउज़ कर रहा था और आपके द्वारा प्रदान किए गए उस पोस्ट में नहीं चला था। यह गुगली कर रहा था और स्टैकओवरफ्लो में इस पृष्ठ को ढूंढ रहा था जिसने मेरी जान बचाई। धन्यवाद!
luis.ap.uyen

2
मैंने यह कोड कहां रखा है और इसे किस फ़ंक्शन को संबोधित करना चाहिए? क्षमा करें, जेएस नोब यहाँ, मैंने इसे सेलेक्ट 2 जेएस का हिस्सा बनाने की कोशिश की या इसे पृष्ठ के शीर्ष / अंत में रखकर, सफलता के बिना। $.fn.modal.Constructor.prototype.enforceFocus = $.noop;
Armitage2k

39

बस निकालें tabindex="-1"और शैली जोड़ेंoverflow:hidden

यहाँ एक उदाहरण है:

<div id="myModal" class="modal fade" role="dialog" style="overflow:hidden;">
    <!---content modal here -->
</div>

यह काम करता है, लेकिन जब मेरे पास लंबे मोडल होते हैं तो मैं नीचे नहीं जा सकता!
तारेक कालजी

1
@TarekKalaji क्या आपने कभी पता लगाया कि इस समाधान के साथ स्क्रॉल करने की अनुमति कैसे दें?
OverflowingTheGlass

टैबिन्डेक्स को हटाने की कोशिश की लेकिन पर्याप्त नहीं था। अतिप्रवाह जोड़ना: छिपाना उपयोगी है यदि मोडल बॉक्स लंबा है ...
प्लेसेबो

टैब इंडेक्स विशेषता को हटाने के लिए मेरे लिए काम किया।
ग्लेन

बस FYI करें: टैब-इंडेक्स एटर को हटाने से एस्क बटन द्वारा मोडल पॉपअप को बंद करने की क्षमता दूर हो जाएगी।
जिज्ञासु बोय

31
.select2-close-mask{
    z-index: 2099;
}
.select2-dropdown{
    z-index: 3051;
}

यह मेरा समाधान है select2 4.0.0 के साथ। बस select2.css आयात के ठीक नीचे css को ओवरराइड करें। कृपया सुनिश्चित करें कि z- इंडेक्स आपके संवाद या मोडल से अधिक है। मैं अभी डिफ़ॉल्ट पर 2000 जोड़ता हूं। क्योंकि मेरे संवादों का z- इंडेक्स लगभग 1000 है।


1
सिवाय समाधान के कुछ भी काम नहीं किया सिवाय इसके कि चयन के लिए 4.0 4.0। बहुत बहुत धन्यवाद।
नील

एक ही समस्या तब होती है जब Select2 (v4.0.0) एक पॉपओवर में होता है। में bootstrap.cssकी z- सूचकांक .popover1060 के लिए निर्धारित है तो यह ठीक रूप में अच्छी तरह से काम करता है। मुझे यह पसंद है क्योंकि यह सरल है और यह समस्या को उसी तरह हल करता है जिस तरह से समस्या बनाई गई थी: स्टाइल शीट में z-index सेट।
पॉल

2
सबसे तुच्छ अभी तक एकमात्र समाधान जिसने काम किया। धन्यवाद!
इश्तियाक खान

मैंने अपनी सीएसएस फ़ाइल में उपरोक्त जोड़ा है, लेकिन इसमें कोई बदलाव नहीं है। मैं jQuery मोबाइल का उपयोग कर रहा हूँ। कोई सुझाव कृपया?
साहिल खन्ना

@Sahil 1. सुनिश्चित करें कि यह मूल रूप से सफलतापूर्वक ओवरराइड हो गया है। सरल तरीका यह है कि सभी डिफ़ॉल्ट सीएसएस फ़ाइलों के बाद इसे जोड़ दें। जेड-इंडेक्स को चेक करें, यह सुनिश्चित करें कि यह संवाद से बड़ा है
दिलुका डब्ल्यू

26

DropdownParent सेट करें। मुझे इसे मोडल के भीतर-मोडल-कंटेंट पर सेट करना पड़ता था या टेक्स्ट केंद्रित हो जाता था।

$("#product_id").select2({
    dropdownParent: $('#myModal .modal-content')
});

2
.modal-contentवास्तव में एक फर्क। इशारा करने के लिए धन्यवाद 👍
Js Lim

इसने मेरे लिए काम किया। मुझे आश्चर्य है कि यह उतने उत्थान क्यों नहीं हुए।
क्रिसब्र्र

मेरे लिए भी काम किया धन्यवाद
नेहा

11

मेरे लिए काम करने वाले उत्तर यहां मिले: https://github.com/select2/select2-bootstrap-theme/issue/41

$('select').select2({
    dropdownParent: $('#my_amazing_modal')
});

इसके अलावा हटाने की आवश्यकता नहीं है tabindex


यह सबसे अच्छा तरीका है, यह भी मोडल से सभी कार्यक्षमता रखता है।
एडोफ्रे

9

आधिकारिक select2 प्रलेखन के अनुसार यह समस्या इसलिए होती है क्योंकि बूटस्ट्रैप मोडल के बाहर अन्य तत्वों से फ़ोकस चुराने की प्रवृत्ति होती है।

डिफ़ॉल्ट रूप से Select2 तत्व में ड्रॉपडाउन मेनू संलग्न करता है और इसे "मोडल के बाहर" माना जाता है।

इसके बजाय ड्रॉपडाउन ड्रॉपडाउन के साथ ही मोडल को संलग्न करें।

$('#myModal').select2({
   dropdownParent: $('#myModal')
});

संदर्भ देखें: https://select2.org/troublesourcing/common-problems


अच्छा। यह शानदार पॉपअप के साथ काम नहीं कर रहा था, अब ड्रॉपडाउन के विकल्प को जोड़ने के बाद इसका काम ठीक है।
योगेश सरोया

8

मैं एक ही मुद्दा था, को अद्यतन करने z-indexके लिए .select2-containerचाल करना चाहिए। सुनिश्चित करें कि आपके मॉडल का चयन 2 z-indexसे कम है।

.select2-container {
    z-index: 99999;
}

अपडेट किया गया: यदि उपरोक्त कोड ठीक से काम नहीं करता है, तो @breq के सुझाव के अनुसार अपने मोडल से टैबइंडेक्स भी हटा दें


1
आपको इसे काम करने के लिए @breq उत्तर के साथ इसे लागू करने की आवश्यकता है।
रयान ऐरी

7

Jus इस कोड का उपयोग Document.read () पर करें

$.fn.modal.Constructor.prototype.enforceFocus = function () {};

1
उचित कार्य नाम "$ (दस्तावेज़) है। पहले से ही"। तो कोड इस तरह होना चाहिए: $ (दस्तावेज़)।
लेक ऑसिस्की

1
@ LechOsi Leski - वास्तव में कोड के इस छोटे से हिस्से का उपयोग करने का वर्णन करने के लिए धन्यवाद। आपका समाधान एकमात्र है जिसने मेरे लिए काम किया। +1
फ्रांसिस बार्टोवाइक

7

इस समस्या ने मुझे एकल एकल कार्य समारोह के लिए काम करने की अनुमति दी

$('#myModal .select2').each(function() {  
   var $p = $(this).parent(); 
   $(this).select2({  
     dropdownParent: $p  
   });  
});

5

select2.css फ़ाइल बदलें

z-index: 9998;
...
z-index: 9999;
...
z-index: 10000;

सेवा

z-index: 10000;
...
z-index: 10001;
...
z-index: 10002;

यह मेरे लिए केवल एक ही काम करता है (jquery-ui-1.10.3.css, jquery-ui-1.9.1.js और select2 3.4.0)। मेरे पास 2 jquery UI डायलॉग हैं जो एक के ऊपर एक हैं और दूसरे पर select2 हैं। इसके अलावा, मैंने jQuery UI डायलॉग $ .ui.dialog.prototype._allowInteraction = function (e) {रिटर्न !! $ (e.target) .closest ('ui-' पर select2, date और time picker की इंटरैक्शन की अनुमति दी है। संवाद, .ui-datepicker, .select2-drop ')। लंबाई; }; मुझे नहीं पता कि यह मदद करता है या नहीं।
एड्रियन पी।

5

बस बेहतर तरीके से समझने के लिए कि टैबइंडेक्स तत्व स्वीकृत उत्तर को पूरा करने के लिए कैसे काम करता है:

टैबइंडेक्स वैश्विक विशेषता एक पूर्णांक है जो यह दर्शाता है कि तत्व इनपुट फ़ोकस कर सकता है (ध्यान देने योग्य है), यदि यह अनुक्रमिक कीबोर्ड नेविगेशन में भाग लेना चाहिए, और यदि ऐसा है, तो किस स्थिति में है। यह कई मान ले सकता है:
  -एक नकारात्मक मान का मतलब है कि तत्व ध्यान देने योग्य होना चाहिए, लेकिन अनुक्रमिक कीबोर्ड नेविगेशन के माध्यम से पहुंच योग्य नहीं होना चाहिए;
  -0 का मतलब है कि तत्व को अनुक्रमिक कीबोर्ड नेविगेशन के माध्यम से ध्यान देने योग्य और पहुंच योग्य होना चाहिए, लेकिन इसका सापेक्ष क्रम प्लेटफॉर्म सम्मेलन द्वारा परिभाषित किया गया है;
  -एक सकारात्मक मूल्य का मतलब अनुक्रमिक कीबोर्ड नेविगेशन के माध्यम से ध्यान देने योग्य और पहुंच योग्य होना चाहिए; इसका सापेक्ष क्रम विशेषता के मूल्य द्वारा परिभाषित किया गया है: अनुक्रमिक टैबिंडेक्स की बढ़ती संख्या का पालन करता है। यदि कई तत्व एक ही टैबइन्डेक्स को साझा करते हैं, तो उनका सापेक्ष क्रम दस्तावेज़ में उनकी सापेक्ष स्थिति का अनुसरण करता है।

से: मोज़िला डेवलपर नेटवर्क


3

आप के साथ एक समस्या है, तो आईपैड कुंजीपटल जो छिपाने बूटस्ट्रैप मोडल जबकि पर क्लिक Select2 इनपुट, तो आपको निम्न नियम जोड़कर इस हल कर सकते हैं के बाद से प्रारंभ select2इनपुट:

if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {
   var styleEl = document.createElement('style'), styleSheet;
   document.head.appendChild(styleEl);
   styleSheet = styleEl.sheet;
   styleSheet.insertRule(".modal { position:absolute; bottom:auto; }", 0);
   document.body.scrollTop = 0; // Only for Safari
}

Https://github.com/angular-ui/bootstrap/issues/1812#issuecomment-13559494 से लिया गया

संपादित करें: यदि आपके विकल्प ठीक से नहीं दिखाए गए हैं, तो आपको dropdownParentइनिशियलाइज़ करते समय विशेषता का उपयोग करने की आवश्यकता है select2:

$(".select2").select2({
    dropdownParent: $("#YOURMODALID")
});

सौभाग्य (:


3

@Pymarco जवाब के आधार पर मैंने यह समाधान लिखा है, यह सही नहीं है, लेकिन select2 फोकस समस्या को हल करता है और मोडल के अंदर काम करने वाले टैब अनुक्रम को बनाए रखता है

    $.fn.modal.Constructor.prototype.enforceFocus = function () {
        $(document)
        .off('focusin.bs.modal') // guard against infinite focus loop
        .on('focusin.bs.modal', $.proxy(function (e) {
            if (this.$element[0] !== e.target && !this.$element.has(e.target).length && !$(e.target).closest('.select2-dropdown').length) {
                this.$element.trigger('focus')
            }
        }, this))
    }

3

मेरे मामले में मुझे दो मॉडल्स के साथ समान समस्या थी और सभी का उपयोग करके हल किया गया था:

$('.select2').each(function() { 
    $(this).select2({ dropdownParent: $(this).parent()});
})

जैसा कि परियोजना के अंक # 41 में एक उपयोगकर्ता ने कहा।


2
$("#IlceId").select2({
    allowClear: true,
    multiple: false,
    dropdownParent: $("#IlceId").parent(),
    escapeMarkup: function (m) {
        return m;
    },
});

यह कोड काम कर रहा है। धन्यवाद।


2

ठीक है, मुझे पता है कि मुझे पार्टी में देरी हो रही है। लेकिन मेरे साथ जो काम किया है, उसके बारे में मुझे बताएं। टैबइंडेक्स और जेड-इंडेक्स समाधान मेरे लिए काम नहीं करते थे।

चुनिंदा तत्व के माता-पिता को सेट करना चयन 2 साइट पर सूचीबद्ध सामान्य समस्याओं के अनुसार काम करता है ।


1

यदि आप jquery मोबाइल पॉपअप का उपयोग करते हैं, तो आपको _handleDocumentFocusIn फ़ंक्शन को फिर से लिखना होगा:

$.mobile.popup.prototype._handleDocumentFocusIn = function(e) {
  if ($(e.target).closest('.select2-dropdown').length) return true;
}


मैं jQuery मोबाइल का उपयोग कर रहा हूं और एक पॉपअप में Select2 को एम्बेड किया है। आपके द्वारा प्रदान किया गया कोड एक पीसी ब्राउज़र पर अच्छा काम करता है। लेकिन जब मैं इस कोड को मोबाइल ब्राउज़र पर चलाता हूं, तो पॉपअप बंद हो जाता है और किसी भी मूल्य को चुनने पर फिर से खुल जाता है। क्या आप मुझे कोई बदलाव करने की सलाह दे सकते हैं?
साहिल खन्ना

1

मैं के साथ एक ही समस्या है select2में bootstrap modal, और समाधान निकालने के लिए था overflow-y: auto;और overflow: hidden; से .modal-openऔर.modal classes

यहाँ का उपयोग jQueryकरने के उदाहरण को हटाने के लिए है overflow-y:

$('.modal').css('overflow-y','visible');
$('.modal').css('overflow','visible');

1

मैं इस समस्या से पहले था, मैं yii2 का उपयोग कर रहा हूँ और मैं इसे इस तरह से हल किया

$.fn.modal.Constructor.prototype.enforceFocus = $.noop;

1

मेरे पास एक आवेदन में एक अर्ध-संबंधित मुद्दा था इसलिए मैं अपने 2 सी में डालूंगा।

मेरे पास कई मोडल हैं जिनमें सेलेक्ट्स 2 विजेट्स हैं। ओपनिंग मोडल ए, फिर मोडल ए के अंदर एक और मोडल, मोडल बी के अंदर सेलेक्ट 2 विगेट्स को गायब करने और आरंभिक रूप से विफल होने का कारण होगा।

इनमें से प्रत्येक मोडल अजाक्स के माध्यम से फॉर्म लोड कर रहा था।

उपाय यह था कि मोडल को बंद करते समय डोम से रूपों को हटा दिया जाए।

$(document).on('hidden.bs.modal', '.modal', function(e) {
    // make sure we don't leave any select2 widgets around 
    $(this).find('.my-form').remove();
});

1
$('.modal').on('shown.bs.modal', function (e) {
    $(this).find('.select2me').select2({
        dropdownParent: $(this).find('.modal-content')
    });
})

1

मैंने आमतौर पर अपनी परियोजना में select2-function को ओवरलोड करके हल किया । अब यह जांच करेगा कि क्या कोई ड्रॉपडाउन नहीं है और यदि फ़ंक्शन उस तत्व पर कॉल किया जाता है जिसमें टाइप का कोई पेरेंट है div.modal। यदि हां, तो यह ड्रॉपडाउन के लिए माता-पिता के रूप में उस मॉडल को जोड़ देगा।

इस तरह, आपको हर बार यह चुनने की ज़रूरत नहीं है कि आप एक चयन 2-इनपुट-बॉक्स बनाते हैं।

(function(){
    var oldSelect2 = jQuery.fn.select2;
    jQuery.fn.select2 = function() {
        const modalParent = jQuery(this).parents('div.modal').first();
        if (arguments.length === 0 && modalParent.length > 0) {
            arguments = [{dropdownParent: modalParent}];
        } else if (arguments.length === 1
                    && typeof arguments[0] === 'object'
                    && typeof arguments[0].dropdownParent === 'undefined'
                    && modalParent.length > 0) {
            arguments[0].dropdownParent = modalParent;
        }
        return oldSelect2.apply(this,arguments);
    };
    // Copy all properties of the old function to the new
    for (var key in oldSelect2) {
        jQuery.fn.select2[key] = oldSelect2[key];
    }
})();

0

मैं सिर्फ select2.min.css को शामिल करके इसे प्राप्त कर रहा हूं

मैं बाहर की कोशिश करो

बूटस्ट्रैप 3 का मेरा मोडल html है

<div id="changeTransportUserRequestPopup" class="modal fade" role="dialog">
    <div class="modal-dialog" style="width: 40%!important; ">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h3>Warning</h3>
            </div>
            <div class="modal-body" id="changeTransportUserRequestPopupBody">
                <select id="cbTransport" class="js-example-basic-single" name="cbTransport" style="width:100%!important;"></select>
            </div>
            <div class="modal-footer">
                <button id="noPost" class="btn btn-default" name="postConfirm" value="false" data-dismiss="modal">Cancel</button>
                <button type="submit" id="yesChangeTransportPost" class="btn btn-success" name="yesChangeTransportPost" value="true" data-dismiss="modal">Yes</button>
            </div>
        </div>
    </div>
</div>


0

सर्वर-साइड (ajax या json डेटा इनलाइन) के साथ बूटस्ट्रैप 4.0 का उपयोग करने के लिए, आपको यह सब जोड़ना होगा:

$.fn.modal.Constructor.prototype._enforceFocus = function() {};

और फिर जब मोडल खुला हो, तो select2 बनाएँ:

  // when modal is open
  $('.modal').on('shown.bs.modal', function () {
            $('select').select2({
                  // ....
            });
  });

-1

मेरे मामले में मैंने ऐसा किया है और यह काम करता है। मैं इसे लोड करने के लिए बंडल का उपयोग करता हूं और इस मामले में यह मेरे लिए काम करता है

 $(document).on('select2:select', '#Id_Producto', function (evt) {
   // Here your code...
  });
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.