2012-05-11 19 views
13

दुर्भाग्यवश, दस्तावेज़ बूटबॉक्स (http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap) पुष्टि संवाद को कॉल करने का तरीका नहीं सिखाता है। चूंकि यह पृष्ठ लोड होने पर दस्तावेज़ विंडो में हमेशा प्रकट होता है, गलत क्या होता है, हटाए जाने पर बटन पर क्लिक करके कॉल किया जाना चाहिए। यह वह कोड है जिसने असफल प्रयास किया।बूटबॉक्स संवाद समस्याओं की पुष्टि

// show "false" does not work, the confirm window is showing when page is loaded. 
$(function() { 
bootbox.confirm("Confirm delete?", "No", "Yes", function(result) { 
show: false 
});  
}); 

// need show the confirm window when the user click in a button, how to call the confirm window? 

<td><a class="icon-trash" onclick="bootbox.confirm();" href="{% url 'del_setor' setor.id %}" title="Delete"></a></td> 

मैं इस बूटबॉक्स को केवल तब प्रदर्शित करने के लिए कैसे सेट करूं जब हटाएं बटन क्लिक किया गया हो? धन्यवाद!

संपादित -SOLUTION:

$(function() { 
$("a#confirm").click(function(e) { 
    e.preventDefault(); 
    var location = $(this).attr('href'); 
    bootbox.confirm("Confirm exclusion?", "No", "Yes", function(confirmed) { 
     if(confirmed) { 
     window.location.replace(location); 
     } 
    }); 
});  
}); 

अब, विलोपन काम करता है जब मैं में क्लिक करें "हाँ"। मैंने दस्तावेज़ में पूर्ण नमूना डालने के लिए प्लगइन के डेवलपर्स से पूछा, इसलिए उपयोगकर्ताओं को "हां" क्लिक होने पर ऑब्जेक्ट को हटाने के तरीके के बारे में पोस्ट बनाने की आवश्यकता नहीं है। सम्मान।

+0

हंसी हंसी - हाँ है कि कुछ है कि डेवलपर्स को जानने की जरूरत होती होगा की तरह प्रतीत होता है। –

उत्तर

6

आप "मूल प्रयोग" के तहत "पुष्टि करें" लिंक इस पृष्ठ पर पर स्रोत जाँच करना चाहते हो सकता है: http://bootboxjs.com/

यहाँ एक टुकड़ा है:

$("a.confirm").click(function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function(confirmed) { 
     console.log("Confirmed: "+confirmed); 
    }); 
}); 

मान लिया जाये कि jQuery UI में उपलब्ध है आप मैं काम कर रहा हूं, मैं आपके एंकर टैग में onClick विशेषता का उपयोग करने से बचूंगा। केवल मेरे दो सेंट्स।

+0

ठीक है, उत्तर के लिए धन्यवाद! अब खिड़की दिखाई देती है, लेकिन जब मैं "हाँ" में क्लिक करता हूं तो कुछ भी नहीं होता है, बहिष्करण नहीं होता है। सम्मान। – LinuxMan

+0

आप जेएस कंसोल को देखना चाहते हैं कि यह देखने के लिए कि क्या आपको कोई त्रुटि फेंक रही है या नहीं। जिस कोड पर आप काम कर रहे हैं उसे देखे बिना यह कहना मुश्किल है कि समस्या का कारण क्या है। क्या आप इसे जेएसएफडल में फेंक सकते हैं? – jstam

+1

कोड पोस्ट किया गया था, jsfiddle में प्रकाशित करना आवश्यक नहीं है क्योंकि मेरे पास केवल यह कोड प्रदर्शित करने के लिए है। और वहां मेरे पास निकालने का कोई ऑब्जेक्ट नहीं है। क्या हो रहा है सरल है, मैं "हाँ" पर क्लिक करता हूं और ऑब्जेक्ट को हटाया नहीं जाता है, फ़ायरबग में दिखाए जाने के बावजूद "हटाया गया: सत्य"। फायरबग में कोई त्रुटि संदेश प्रकट नहीं होता है, बस ऑब्जेक्ट को नहीं हटाता है। सादर। – LinuxMan

0
$(document).on("click", ".confirm-modal", function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are You sure?", function(result) { 
     if(result) { 
      top.location.href = e.target.href; 
     } 
    }); 
}); 
+2

इतने देर के उत्तर के लिए, आपको स्पष्टीकरण जोड़ना चाहिए। – manuell

3

मुझे लगता है कि बहुत जरूरत है, लेकिन मैं एक छोटे से कुछ चीजें बदल ... एक नजर डालें ...

कि तरह अपने वैश्विक "jQuery तैयार" समारोह में इस समारोह में जोड़ें:

$(document).on("click", "[data-toggle=\"confirm\"]", function (e) { 
    e.preventDefault(); 
    var lHref = $(this).attr('href'); 
    var lText = this.attributes.getNamedItem("data-title") ? this.attributes.getNamedItem("data-title").value : "Are you sure?"; // If data-title is not set use default text 
    bootbox.confirm(lText, function (confirmed) { 
     if (confirmed) { 
      //window.location.replace(lHref); // similar behavior as an HTTP redirect (DOESN'T increment browser history) 
      window.location.href = lHref; // similar behavior as clicking on a link (Increments browser history) 
     } 
    }); 
}); 

और बस ऐसे ही अपने बटन या लिंक करने के लिए कुछ "डेटा- * विशेषताएं" जोड़ें:

<a class="btn btn-xs btn-default" data-toggle="confirm" data-title="Do you really want to delete the record 123?" href="/Controller/Delete/123"><span class="fa fa-remove"></span> </a> 

तो ... इस तरह से आप एपी हो सकता है ersonalized सवाल .. यह आपके उपयोगकर्ताओं के लिए अधिक सहज है ...

क्या आपको पसंद आया ?!

डेमो देखें: jsfiddle

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