2013-06-19 13 views
5

में event.preventDefault मैं एक फॉर्म सबमिट कर रहा हूं और मैं सबमिट कार्रवाई को तब तक रोकना चाहता हूं जब तक कि मैं कुछ अन्य क्रियाएं नहीं करता जैसे फ़ाइल अपलोड के लिए प्रगति पट्टी दिखाता हूं। मैंने इस कोड को SO12 प्रश्नों के आधार पर सेट किया है जैसे event.preventDefault() function not working in IEआईई 10

$(document).ready(function(){ 
    $("#fileform").submit(function(e){ 
     if(!e) e = window.event; 
     if (e.preventDefault){ 
      // Firefox, Chrome 
      e.preventDefault(); 
     }else{ 
      // Internet Explorer 
      e.returnValue = false; 
     } 

     // other code 
    } 
} 

सब कुछ फ़ायरफ़ॉक्स और क्रोम में ठीक काम करता है; सबमिट कार्रवाई को रोका जाता है, प्रगति बार प्रकट होता है और फिर जब मैं इसे बताता हूं तो फॉर्म सबमिट किया जाता है। हालांकि, आईई 10 में, अगर कथन की पहली शर्त निष्पादित की जाती है और फॉर्म सबमिट करने की कोशिश कर रहा है (आईई 10 के सबमिट बुलबुले दिखाए जाते हैं)। पहली शर्त क्यों निष्पादित की जा रही है?

क्या आईई 10 समर्थन रोकता है डीफॉल्ट() जहां आईई 8 और 9 नहीं था? यदि हां, तो मैं आईई 8, 9, 10 में फॉर्म सबमिट करने की कार्रवाई को रोकने में कैसे सही तरीके से संभाल सकता हूं जो फ़ायरफ़ॉक्स, क्रोम, सफारी इत्यादि में हस्तक्षेप नहीं करेगा ...?

उत्तर

8

बस नीचे करें, jQuery ने आपके लिए पहले ही क्रॉस ब्राउज़र नौकरी की है।

$("#fileform").submit(function(e){ 
    e.preventDefault(); 
    // other code 
}); 
+0

जब मैं इस कोड का उपयोग, कुछ भी नहीं बदलता है। फ़ायरफ़ॉक्स और क्रोम अभी भी ठीक काम करते हैं, लेकिन मेरी प्रगति पट्टी आईई में दिखाई नहीं देती है (आईई फॉर्म सबमिट बुलबुले दिखाई देते हैं)। –

+0

कभी नहीं, आप सही हैं। ईवेंट jQuery में सामान्यीकृत है और e.preventDefault() अपेक्षा के अनुसार काम करता है। धन्यवाद। –

0

कोशिश भी डाल करने के लिए निम्नलिखित:

e.preventDefault(); 

http://api.jquery.com/event.preventDefault/

http://api.jquery.com/event.stopPropagation/

तो आप पढ़ सकते हैं

e.stopPropagation(); 

के बाद: Stop form from submitting , Using Jquery

आप देखेंगे:

Becoz e.preventDefault() is not supported in IE. In IE it is e.returnValue = false 

संशोधित कोड:

$("#fileform").submit(function(e){ 
     if(!e) e = window.event; 

     e.preventDefault(); 
     e.stopPropagation(); 

     // other code, do something here 
     return true; // or false if something goes wrong 
    } 
+1

'e.preventDefault() का उपयोग करना; e.stopPropagation(); 'कोई बदलाव नहीं दिखाता है। –

+0

कोड –

+0

के संशोधित भाग को देखें अभी भी कोई फर्क नहीं पड़ता। –