दिलचस्प पोस्ट
Google टेक्स्ट-टू-स्पीच API मैं .NET में एक स्ट्रिंग से डाईक्रिटिक्स (ऐक्सेंट्स) कैसे निकालूं? जावास्क्रिप्ट / HTML5 में एक्सेल फाइल को कैसे पार्स करना है हाइबरनेट ऑरेकल अनुक्रम बड़े अंतर पैदा करता है सी स्ट्रिंग भ्रम एंड्रॉइड स्टूडियो में "प्रतीक आर को हल नहीं किया जा सकता" codeigniter वेबसाइट बहु भाषा बनाने का सबसे अच्छा तरीका लैंग एरेज़ से फोन करना लैंग सत्र पर निर्भर करता है? सरणी की सूची को एक बहुआयामी सरणी में कनवर्ट कैसे करें सिग्नल आर + एक्शन विधि के माध्यम से एक हब को संदेश पोस्ट करना पायथन 2 में आप एक हेड HTTP अनुरोध कैसे भेज सकते हैं? कैसे अपलोड करने पर jQuery के सीमित प्रकार के फाइलों को सीमित करें? एंड्रॉइड में जेक्सिंग का उपयोग कैसे करें सी। सीपीपी फ़ाइल में सी ++ टेम्पलेट फ़ंक्शन परिभाषाओं को संग्रहीत करना विंडोज सर्विस बनाम शेड्यूल्ड कार्य स्थिर पुस्तकालयों का मिश्रण करें

event.preventDefault () फ़ंक्शन IE में काम नहीं कर रहा है

निम्नलिखित मेरा जावास्क्रिप्ट (माइटूल) कोड है:

$('orderNowForm').addEvent('submit', function (event) { event.preventDefault(); allFilled = false; $$(".required").each(function (inp) { if (inp.getValue() != '') { allFilled = true; } }); if (!allFilled) { $$(".errormsg").setStyle('display', ''); return; } else { $$('.defaultText').each(function (input) { if (input.getValue() == input.getAttribute('title')) { input.setAttribute('value', ''); } }); } this.send({ onSuccess: function () { $('page_1_table').setStyle('display', 'none'); $('page_2_table').setStyle('display', 'none'); $('page_3_table').setStyle('display', ''); } }); }); 

IE को छोड़कर सभी ब्राउज़रों में, यह ठीक काम करता है। लेकिन IE में, यह एक त्रुटि का कारण बनता है अपने जावास्क्रिप्ट डीबगर का उपयोग करते समय मुझे IE8 मिला है, मुझे पता चला कि event ऑब्जेक्ट को preventDefault विधि को preventDefault नहीं है जो त्रुटि पैदा कर रहा है और इसलिए फार्म जमा हो रही है। फ़ायरफ़ॉक्स के मामले में विधि का समर्थन किया जाता है (जो मुझे फायरबग का उपयोग करने के लिए मिला है)।

कोई मदद?

वेब के समाधान से एकत्रित समाधान "event.preventDefault () फ़ंक्शन IE में काम नहीं कर रहा है"

IE में, आप उपयोग कर सकते हैं

 event.returnValue = false; 

एक ही परिणाम प्राप्त करने के लिए

और एक त्रुटि प्राप्त करने के लिए, आप को रोकने के अस्तित्व के लिए परीक्षण कर सकते हैं डिफ़ॉल्ट:

 if(event.preventDefault) event.preventDefault(); 

आप इन दोनों को साथ जोड़ सकते हैं:

 event.preventDefault ? event.preventDefault() : (event.returnValue = false); 

अगर आप इवेंट को बाइबल को जोड़ते हैं, तो अपने इवेंट हैंन्डलर को पैरामीटर के रूप में पारित एक निश्चित (संवर्धित) इवेंट मिलेगा। इसमें हमेशा preventDefault () विधि शामिल होगी

घटना बाध्यकारी में अंतर देखने के लिए इस बेला की कोशिश करो। http://jsfiddle.net/pFqrY/8/

 // preventDefault always works $("mootoolsbutton").addEvent('click', function(event) { alert(typeof(event.preventDefault)); }); // preventDefault missing in IE <button id="htmlbutton" onclick="alert(typeof(event.preventDefault));"> button</button> 

सभी jQuery के प्रयोक्ताओं के लिए जब आवश्यक हो तो आप एक ईवेंट को ठीक कर सकते हैं। कहते हैं कि आपने एचटीएमएल onclick = ".." का उपयोग किया है और एक आईई विशिष्ट ईवेंट प्राप्त किया है जो preventDefault () को रोकता है, बस इसे पाने के लिए इस कोड का उपयोग करें

 e = $.event.fix(e); 

उस e.preventDefault () के बाद; ठीक काम करता है।

मुझे पता है कि यह काफी पुरानी पोस्ट है, लेकिन मैंने कुछ समय व्यतीत किया है कि यह काम IE8 में करने का प्रयास कर रहा है।

ऐसा प्रतीत होता है कि IE8 संस्करणों में कुछ अंतर हैं क्योंकि समाधान यहां पोस्ट किए गए हैं और अन्य थ्रेड्स में मेरे लिए काम नहीं किया है

मान लें कि हमारे पास यह कोड है:

 $('a').on('click', function(event) { event.preventDefault ? event.preventDefault() : event.returnValue = false; }); 

मेरे IE8 preventDefault() विधि में jQuery के कारण मौजूद है, लेकिन काम नहीं कर रहा है (शायद नीचे के बिंदु के कारण), इसलिए ये असफल हो जायेगा।

यहां तक ​​कि अगर मैं returnValue संपत्ति को सीधे गलत पर सेट करता returnValue :

 $('a').on('click', function(event) { event.returnValue = false; event.preventDefault(); }); 

यह भी काम नहीं करेगा, क्योंकि मैं सिर्फ jQuery कस्टम इवेंट ऑब्जेक्ट की कुछ प्रॉपर्टी सेट करता हूं।

मेरे लिए काम करने वाले एकमात्र उपाय है संपत्ति की returnValue वैरिएबल event जैसे:

 $('a').on('click', function(event) { if (window.event) { window.event.returnValue = false; } event.preventDefault(); }); 

बस किसी ऐसे व्यक्ति के लिए आसान बनाने के लिए जो IE8 को काम करने के लिए समझें। मुझे उम्मीद है कि IE8 दर्दनाक मौत में बहुत जल्द मर जाएगा

अद्यतन करें:

जैसा कि sv_in बताता है, आप मूल ईवेंट ऑब्जेक्ट प्राप्त करने के लिए event.originalEvent का उपयोग कर सकते हैं और मूल एक में returnValue प्रॉपर्टी सेट कर returnValue हैं। लेकिन मैंने इसे अपने IE8 में अभी तक परीक्षण नहीं किया है

Mootools को रोकता हैइवेंट ऑब्जेक्ट्स में डिफॉल्ट को रोकता है। तो आपका कोड प्रत्येक ब्राउज़र पर ठीक काम करना चाहिए अगर ऐसा नहीं होता है, तो आईटी 8 समर्थन के साथ समस्या एक समस्या है।

क्या आपने अपना कोड ie6 और / या i7 पर परीक्षण किया?

डॉक्टर कहते हैं

AddEvent के साथ जोड़ा जाने वाला हर ईवेंट को मैन्युअल रूप से इजाजत करने की आवश्यकता के बिना, स्वचालित रूप से विधि का उपयोग किया जाता है।

लेकिन यदि यह नहीं है, तो आप कोशिश कर सकते हैं

 new Event(event).preventDefault(); 
 if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } 

IE 9 और क्रोम पर परीक्षण किया गया

IE9 के बाद एक कुंजीपटल कुंजी अक्षम करने के लिए, उपयोग करें: e.preventDefault();

आईई 7/8 के तहत एक नियमित कीबोर्ड कुंजी को अक्षम करने के लिए, उपयोग करें: e.returnValue = false; या return false;

यदि आप एक कीबोर्ड शॉर्टकट को अक्षम करने का प्रयास करते हैं (Ctrl के साथ, जैसे Ctrl+F ) आपको उन पंक्तियों को जोड़ने की आवश्यकता है:

 try { e.keyCode = 0; }catch (e) {} 

यहां केवल आईई 7/8 के लिए एक पूर्ण उदाहरण है:

 document.attachEvent("onkeydown", function () { var e = window.event; //Ctrl+F or F3 if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { //Prevent for Ctrl+... try { e.keyCode = 0; }catch (e) {} //prevent default (could also use e.returnValue = false;) return false; } }); 

संदर्भ: आईई 7 / आईई 8 में कीबोर्ड शॉर्टकट को अक्षम कैसे करें I

यहां एक फ़ंक्शन है जिसे मैं jquery 1.3.2 और 09-18-2009 रात के निर्माण के साथ परीक्षण कर रहा हूं। मुझे इसके साथ अपने परिणामों को बताएं सफारी, एफएफ, ओपेरा पर ओएसएक्स में सब कुछ ठीक है। यह एक समस्याग्रस्त IE8 बग फिक्स करने के लिए विशेष रूप से है, और अनपेक्षित परिणाम हो सकते हैं:

 function ie8SafePreventEvent(e) { if (e.preventDefault) { e.preventDefault() } else { e.stop() }; e.returnValue = false; e.stopPropagation(); } 

उपयोग:

 $('a').click(function (e) { // Execute code here ie8SafePreventEvent(e); return false; }) 

आपके श्रोता में return false सभी ब्राउज़रों में काम करना चाहिए।

 $('orderNowForm').addEvent('submit', function () { // your code return false; } 

एफडब्ल्यूआईड्यू, अगर कोई भी इस प्रश्न को बाद में देखता है, तो आप यह भी देख सकते हैं कि आप अपने ऑन केपर्स हैंडलर फ़ंक्शन को कैसे सौंप रहे हैं।

मैं इस त्रुटि में भाग गया जब मैं गलती से कीपर्स (घटना) के बजाय केपप्रेस (इस) पर पारित किया।

बस कुछ और जांचने के लिए

preventDefault एक व्यापक मानक है; हर बार जब आप पुरानी आईई संस्करणों के साथ अनुपालन करना चाहते हैं तो एडोब का उपयोग करना बोझिल है, तो एक पॉलीफ़िल का इस्तेमाल करना बेहतर है:

 if (typeof Event.prototype.preventDefault === 'undefined') { Event.prototype.preventDefault = function (e, callback) { this.returnValue = false; }; } 

यह ईवेंट के प्रोटोटाइप को संशोधित करेगा और इस फ़ंक्शन को जोड़ देगा, सामान्य रूप से जावास्क्रिप्ट / डोम का एक बड़ा फीचर। अब आप कोई समस्या नहीं के साथ e.preventDefault उपयोग कर सकते हैं।