2012-08-08 8 views
5

संभव डुप्लिकेट: मैं कुछ समाधान की कोशिश हैनहीं किया जा सकता स्पष्ट इनपुट प्रकार = में फ़ाइल जावास्क्रिप्ट jQuery

<input ID="fileUpload1" runat="server" type="file" style="width:275px; position:absolute; left:1px"/> 

:
Clearing <input type='file' /> using jQuery

यह मेरा कोड है :

$("input[type='file']").val(''); 
$('#DivfileUpload').replaceWith("<input class=VWButton ID=fileUpload1 runat=server type=file style=width:275px; position:absolute; left:1px/>"); 

और वेब से कई अन्य लेकिन कोई सफल नहीं।

+0

संभावित डुप्लिकेट: http://stackoverflow.com/q/1043957/663604 –

+0

मैं उस उत्तर का उपयोग करता हूं लेकिन वास्तव में कोई उत्तराधिकारी नहीं है। – anmarti

उत्तर

9

आप (स्पष्ट) सुरक्षा कारणों के लिए फ़ाइल इनपुट का मान सेट नहीं कर सकते हैं।

आप इसे साफ़ करना चाहते हैं, तो आप एक नया एक भी काम करना चाहिए और इसकी जगह प्रपत्र उस में है रीसेट करना होगा।


, लेकिन मान्य कोड के साथ करते हैं। (जिसका अर्थ है सर्वर साइड कोड जैसे एएसपी runat=server विशेषता/मान शामिल करने का प्रयास न करें और उद्धरण विशेषता मान करें जो सादा शब्द नहीं हैं (जैसे आपकी शैली विशेषता)।

+0

इसलिए यदि मैं इनपुट प्रकार = फ़ाइल को div के साथ लपेटता हूं और दूसरा विकल्प उपयोग करना चाहिए? – anmarti

+0

क्या आप सुरक्षा कारणों को सूचीबद्ध/समझा सकते हैं? – Satish

+0

@ सतीश - लोग अपने कंप्यूटर पर फाइलों में निजी जानकारी रखते हैं। यदि आपके द्वारा देखी गई कोई भी वेबसाइट उन फ़ाइलों को पढ़ सकती है, तो यह बहुत निजी नहीं होगी। – Quentin

-1
$(function() { 
    $('#fileUpload1').val(''); 
}); 
+0

क्षमा करें, यह नहीं है। – anmarti

+0

$ (आईडी)।वैल (''); यह काम करेगा यदि यह किसी तत्व के वैध ईवेंट में लागू होता है – TheDean

7

.val ('') के साथ मान सेट करने का प्रयास सुरक्षा कारणों से कुछ ब्राउज़रों (जैसे आईई) में विफल हो जाएगा।

आपका सबसे अच्छा विकल्प

रूप पुनर्स्थापित करने के लिए है:

$('form').trigger('reset'); 

या मामूली संशोधन के साथ, आपका प्लेसमेंट कोड का उपयोग करने (यह सुनिश्चित करते एचटीएमएल वैध):

$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file" style="width:275px; position:absolute; left:1px"/>'); 

आप तो सीएसएस के साथ बॉक्स शैली, आपका कोड भी आसान हो जाता है।

सीएसएस:

#fileUpload1 { 
    width: 275px; 
    position: absolute; 
    left: 1px; 
} 

जावास्क्रिप्ट:

$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file"/>'); 

एक और अधिक उन्नत विकल्प फाइल अपलोड बॉक्स, जब पेज लोड को छिपाने के लिए है, तो इसके बारे में एक क्लोन बनाने जो उपयोगकर्ता को दिखाया जाता है। जब आपको इसे साफ़ करने की आवश्यकता होती है, तो आप क्लोन हटाते हैं, फिर मूल छुपाएं फिर से क्लोन करें। यदि आप उपयोगकर्ता को एक से अधिक फाइल अपलोड करने की अनुमति देना चाहते हैं तो यह विधि आपको इनपुट बॉक्स की कई प्रतियां भी करने की अनुमति देती है। मैं आपके लिए कार्यान्वयन विवरण छोड़ दूंगा। ;)

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