2012-04-12 18 views
5

पर ईवेंट रद्द करना कैप्चर करना मेरे पास एक HTML5 एप्लिकेशन है जो किसी तत्व का उपयोग करके फ़ाइल API का उपयोग करता है। जब उपयोगकर्ता फ़ाइल चुनता है तो मैं जवाब देने में सक्षम हूं। यदि उपयोगकर्ता फ़ाइल पसंद को रद्द करता है तो मैं कुछ करने में सक्षम होना चाहता हूं। हालांकि, अगर इनपुट फ़ाइल चयनकर्ता में ठीक बटन के बजाए उपयोगकर्ता रद्द करने पर क्लिक करता है तो इनपुट इनपुट पर निकाल दिया गया कोई भी ईवेंट नहीं मिल सकता है।इनपुट प्रकार = फ़ाइल

क्या कुछ घटना 'रद्द' पर निकाल दी गई है जो मुझे याद आ रही है, या क्या मुझे इसकी आवश्यकता के लिए अपने ऐप को पुन: आर्किटेक्ट करना चाहिए?

var FileChoosen = false; 

var inputElement = document.getElementById("inputField"); 
inputElement.addEventListener("change", handleFiles, false); 
function handleFiles() { 
    var fileList = this.files; /* now you can work with the file list */ 


    //Check if the layout was changed from file API: 
    if(document.getElementById('fileOutput').innerHTML != "") { 
    FileChoosen = true; 
    setTimeout("funcCalledToCheckUserSelection()", 500); 
    }; 


} 

उत्तर

0

वहाँ वास्तव में तो जैसे परिवर्तन ईवेंट पर उपयोग कर अपने कोड में एक नोट की स्थापना द्वारा अगर एक फ़ाइल का चयन किया गया, तो आप इसे चारों ओर हो सकता है की जांच करने के एक श्रोता नहीं है रद्द करें, ईवेंट ट्रिगर्स को फिर से बदलें। Thats मेरे लिए काम करता है;

 $('#attachedFiles').bind("change", function() { 
      var file = this.files[0]; 
      if (file) { 
       // if file selected, do something 
      } else { 
       // if user clicks 'Cancel', do something 
      } 
     }); 
3

जब उपयोगकर्ता क्लिक करता है:

+5

कौन से ब्राउज़र फ़ाइल इनपुट रद्द करने पर एक परिवर्तन घटना फेंक देते हैं? मेरे लिए काम नहीं करता है। अधिक जानकारी के लिए –

+0

@ ई-डी सफारी पर भी काम नहीं करता –

+0

: यह आदेश केवल Google क्रोम ब्राउज़र के लिए काम करता है। - ** और यह सामान्य है ** - Google क्रोम ने पॉलिकल को पास करने के लिए उपयोगकर्ता को फ़ाइल को हटाने का चयन करने दिया, और न केवल 'रद्द करें ...' - यह ** पॉलिकल ब्राउज़र का मामला है ** अन्य क्लिक को रद्द करना होगा। फ़ाइल इनपुट प्रकार में फ़ाइल नाम प्रदर्शित ब्राउज़र के आधार पर लगातार है। एक Google क्रोम रद्दीकरण में फ़ाइल और फ़ाइल नाम इनपुट प्रकार फ़ाइल में हटा देता है जबकि अन्य कुछ भी नहीं करते हैं। Voilà। – maliness

0

मैं एक ही सवाल है, समाधान आश्चर्यजनक रूप से बहुत ही आसान है ... कम से कम मेरे मामले NW.js (नोड-वेबकिट) में oncancel ईवेंट सक्रिय उपयोगकर्ता फ़ाइल चयनकर्ता में क्लिक करते हैं [रद्द] बटन संवाद। यदि आप NW.js पर भी हैं (process.version v5.11.0) पर आप इस सरल और मूल तरीके का उपयोग करते हैं।

मैंने विंडोज 10 पर माइक्रोसॉफ्ट एचटीए की भी कोशिश की, यह ऑनकैनल घटना को नहीं चलाता है।

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