2015-12-29 9 views
5

मेरा मोडल फॉर्म सफलतापूर्वक अजाक्स अनुरोध करता है। प्राप्त डेटा पृष्ठभूमि में प्रदर्शित होता है। मोडल को आमंत्रित करना डेटा- * गुणों के अनुसार बूटस्ट्रैप उदाहरण here दिखाता है। लेकिन मोडल बर्खास्त नहीं हो रहा है। मैंनेसफल अजाक्स अनुरोध के बाद बूटस्ट्रैप मॉडल फॉर्म बंद करना

OnSuccess = "$('#searchForm').modal('hide');" 

को मेरे Ajax.BeginForm में जोड़ने का प्रयास किया। लेकिन यह पृष्ठभूमि पर मोडल कास्ट करने वाले फीड प्रभाव को नहीं हटाता है।

मेरे दृश्य है:

<div class="modal fade" id="searchForm" tabindex="-1" role="dialog" aria-labelledby="searchFormLabel"> 
    <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="searchFormLabel">Search Here</h4> 
      </div> 
      <div class="modal-body"> 
       @using (Ajax.BeginForm(new AjaxOptions 
       { 
        HttpMethod = "GET", 
        InsertionMode = InsertionMode.Replace, 
        UpdateTargetId = "results", 
        OnSuccess = "$('#searchForm').modal('hide');" 
       })) 
       { 
        // input fields and submit button are here 
       } 
      </div> 

      </div> 
    </div> 
</div> 

मैं कुछ याद आ रही है?

+0

'$ ('# searchForm') के बाद। मोडल ('छुपाएं'); 'यह' $ (' modal-backdrop ') जोड़ें। छुपाएं(); '। देखें कि यह काम करता है या नहीं। –

+0

@Alorika यह काम करता है, लेकिन अगली बार जब आप मोडल खोलने का प्रयास करेंगे तो इसे तुरंत खारिज कर दिया जाएगा। –

+0

यह घटना बुलबुले के कारण हो सकता है। तो आप '$ (' # searchForm ') के बाद 'e.stopPropagation()' जोड़ने का प्रयास कर सकते हैं। मोडल (' छुपाएं '); '। देखें कि यह समाधान आपके लिए काम करता है या नहीं। –

उत्तर

3

इस मामले में, आप modaldata-attributes के माध्यम से खोल रहे हैं, और फिर इसे jQuery का उपयोग करके बंद कर रहे हैं। तो, एक तरह से दोनों मोडल टॉगलिंग विधियों का उपयोग किया जाता है, जो एक दूसरे के साथ संघर्ष कर रहे हैं। तो, डेटा-विशेषताओं को हटाएं और केवल jQuery का उपयोग करके modal दिखाएं/छुपाएं। हो जाएगा

OnSuccess = "unloadModal" 

समारोह unloadModal: onSuccess पर छुपा के लिए

$('#searchForm').modal('show'); //for showing the modal 

:

इस प्रयास करें

function unloadModal() { 
    $('#searchForm').modal('hide'); 
}; 
+0

धन्यवाद @ अोरिका :) –

+0

खुशी हुई यह मदद मिली :) –

+0

मेरे लिए भी मददगार था :) –

1

मेरे परिदृश्य: MVC आंशिक दृश्य के माध्यम से बूटस्ट्रैप मोडल के उपलब्ध कराना सामग्री और इसमें अजाक्स पोस्ट-कॉल का उपयोग करना।

function onAjaxCompleted() 
{ 
    $('#searchForm.close').click(); 
    $('body').removeClass('modal-open'); 
    $('.modal-backdrop').remove(); 
} 

आशा यह आप के साथ-साथ मदद कर सकता है: क्या स्वचालित रूप से ajax-कॉल के बाद मॉडल को बंद करने के साथ मेरे मामले को हल कर पूरा हो गया है एक छोटे से OnComplete/onSuccess हैंडलर समारोह में कॉल की "कॉम्बो" है।

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