जो मैं प्राप्त करने का प्रयास कर रहा हूं वह सहेजे गए परिवर्तनों के उपयोगकर्ता को चेतावनी देना है यदि वह किसी पृष्ठ को बंद करने या पहले सहेजे बिना इसे सेविगेट करने का प्रयास करता है।ऑन-वन सक्रिय करना केवल तभी अपडेट करें जब फ़ील्ड मान बदल गए हों
मैं पॉप-अप पर OnBeforeUnload()
संवाद प्राप्त करने में कामयाब रहा हूं ... लेकिन मैं नहीं चाहता कि यह किसी भी फ़ील्ड मानों को संशोधित नहीं करता है, तो मैं इसे बिल्कुल प्रदर्शित नहीं करना चाहता हूं। इस के लिए, मैं कहा जाता है इस छिपी हुई इनपुट फ़ील्ड का उपयोग कर रहा कि झूठी का डिफ़ॉल्ट मान के साथ शुरू होता है और जब किसी भी क्षेत्र संपादित किया जाता है सच को flips is_modified।
मैं कोशिश करते हैं और मूल्य परिवर्तन के लिए पता लगाने के लिए इस क्षेत्र के लिए is_modified परिवर्तन घटना बाध्य करने की कोशिश की ... और उसके बाद ही onbeforeunload को सक्रिय करें।
$('#is_modified').change(function() {
if($('#is_modified').val() == 'true')
window.onbeforeunload = function() { return "You have unsaved changes."; }
});
लेकिन मैं क्या समझ से कि change()
घटना केवल इन 3 चरणों के बाद काम करता है - एक क्षेत्र, ध्यान केंद्रित प्राप्त करता है एक मूल्य बदल गया है और क्षेत्र ध्यान केंद्रित खो देता है। छिपे हुए इनपुट फ़ील्ड के मामले में, मुझे यकीन नहीं है कि फोकस भाग कैसे प्राप्त और खो रहा है! इसलिए, Onbeforeunload समारोह कभी सक्रिय नहीं किया जा रहा है।
क्या कोई भी is_modified पर ट्रिगर बनाए रखने का एक तरीका सुझा सकता है?
धन्यवाद।
"सत्य" उचित मूल्य नहीं है। कुछ ब्राउज़रों में (कम से कम फ़ायरफ़ॉक्स, शायद अधिक) "शून्य" लौटने से संवाद रद्द हो जाएगा। आईई में हाउवर, मुझे हैंडलर के भीतर से संवाद रद्द करने का कोई तरीका नहीं मिला। मेरे लिए काम करने वाली एकमात्र चीज हैडलर को पूरी तरह से पहले से हटा देना था (यानी, "window.beforeunload = null"), ब्रायन लार्सन के जवाब में। –
पर्याप्त मेला। अफसोस की बात है, मैंने जवाब देने से पहले मैंने अपने समाधान का पूरी तरह से परीक्षण नहीं किया था। :( –
मुझे पता है कि मैं पार्टी के लिए थोड़ा देर हो चुकी हूं, लेकिन मैं बस इसमें भाग रहा था। हालांकि आईई में अगर फ़ंक्शन 'अपरिभाषित' (या कुछ भी वापस नहीं करता) लौटाता है, तो संवाद नहीं दिखाता है (यह एफएफ में भी काम करता है)। मैंने सच/झूठी/शून्य को वापस करने की कोशिश की और आईई सिर्फ संवाद में पाठ के रूप में "सत्य"/"झूठा"/"शून्य" डालेगा। कोई विचार नहीं। उम्मीद है कि यह किसी और की मदद करेगा। –