फ़ाइल इनपुट कैसे साफ़ करें


86

नीचे jquery कोड का एक हिस्सा है जो मेरे पास फ़ाइल इनपुट और एक "क्लियर फाइल" बटन प्रदर्शित करता है।

var $imagefile = $('<input />').attr({
    type: 'file',
    name: 'imageFile',
    class: 'imageFile'
});

$image.append($imagefile);

var $imageclear = $('<input />').attr({
    type: 'button',
    name: 'imageClear',
    class: 'imageClear',
    value: 'Clear File'
});

$image.append($imageclear);

अब मेरे पास "क्लियर फाइल" बटन होने का कारण है क्योंकि यदि आप बटन पर क्लिक करते हैं, तो यह फाइल इनपुट में कुछ भी स्पष्ट कर देगा। मैं इसे कैसे कोडित करूं ताकि "क्लियर फाइल" बटन पर क्लिक करने पर यह वास्तव में फाइल इनपुट को साफ कर दे?



जवाबों:


161

यह काम करना चाहिए:

$imageClear.on('click', function() { 
    $imageFile.val(''); 
});

1
हां, यह अपेक्षाकृत सरल jQuery कोड है। यह एक क्रॉस-ब्राउज़र समाधान है।
गिलाउम पॉससेल

3
दोस्तों, <input type=file />है readonly> = में फ़ाइल का चयन करने के बाद IE8 , सुरक्षा कारणों से, यहां इसी तरह की है क्यू और संवाददाता एक समाधान यहाँ प्रस्तावित के लिए।
पॉल टी। रॉकेन

1
<input type=file />डेटा प्रकार फ़ाइल है, हम खाली स्ट्रिंग को इनपुट फ़ील्ड में पास नहीं कर सकते।
उस्मान मुगल

क्रोम पर भी काम कर रहे हैं। यह इस stackoverflow.com/a/11953476/1830909 और मेरी टिप्पणी को देखने के लिए उपयोगी हो सकता है।
QMaster

1
मैं jquery का उपयोग करके फ़ाइल इनपुट में कई फ़ाइल अपलोड में फ़ाइल कैसे निकाल सकता हूं?
हमेशा एक सीखने वाला

42

JQuery के साथ स्पष्ट फ़ाइल इनपुट

$("#fileInputId").val(null);

जावास्क्रिप्ट के साथ स्पष्ट फ़ाइल इनपुट

document.getElementById("fileInputId").value = null;

7

यह वह विधि है जिसे मैं भी उपयोग करना पसंद करता हूं, लेकिन मेरा मानना ​​है कि नई वस्तु के साथ जुड़े रहने के लिए आपको किसी भी घटना के लिए क्लोन विधि में बूल ट्रू पैरामीटर जोड़ने की आवश्यकता है और आपको सामग्री साफ़ करने की आवश्यकता है।

    var input = $("#fileInput");

    function clearInput() {
        input = input.val('').clone(true);
    };

https://api.jquery.com/clone/



3

रिएक्ट उपयोगकर्ताओं के लिए

e.target.value = ""

लेकिन अगर फ़ाइल इनपुट तत्व एक अलग तत्व (एक htmlForविशेषता के साथ ) से चालू होता है - तो इसका मतलब होगा कि आपके पास ईवेंट नहीं है

तो आप एक रेफरी का उपयोग कर सकते हैं:

दुर्गंध की शुरुआत में:

const inputRef = React.useRef();

इनपुट तत्व पर

<input type="file" ref={inputRef} />

और फिर onClick फ़ंक्शन (उदाहरण के लिए) पर u लिख सकते हैं

inputRef.current.value = "" 
  • प्रतिक्रिया कक्षाओं में - एक ही विचार, लेकिन निर्माणकर्ता में अंतर: this.inputRef = React.createRef()

1

एक अन्य समाधान यदि आप निश्चित होना चाहते हैं कि यह क्रॉस-ब्राउज़र सक्षम है तो टैग को हटा दें () और फिर संलग्न करें () या प्रीपेन्ड () या किसी अन्य तरीके से उसी विशेषताओं के साथ इनपुट टैग का एक नया उदाहरण फिर से जोड़ें ।

<form method="POST" enctype="multipart/form-data">
<label for="fileinput">
 <input type="file" name="fileinput" id="fileinput" />
</label>
</form>

$("#fileinput").remove();
$("<input>")
  .attr({
    type: 'file',
    id: 'fileinput',
    name: 'fileinput'
    })
  .appendTo($("label[for='fileinput']"));



0

मेरे मामले में अन्य समाधान इस तरह से काम नहीं करते हैं:

$('.bootstrap-filestyle :input').val('');

हालाँकि, यदि आपके पास पृष्ठ पर 1 से अधिक फ़ाइल इनपुट होंगे, तो यह उन सभी पर पाठ को रीसेट कर देगा।


0

इनपुट आईडी प्राप्त करें और वैल नीचे की तरह खाली है: नोट: वैल खाली डबल कोट्स वैल ("") के बीच जगह नहीं है।

 $('#imageFileId').val("")

0

यह कोड सभी ब्राउज़र और सभी इनपुट के लिए काम करता है।

$('#your_target_input').attr('value', '');

मेरा सुझाव है कि आप का उपयोग करें:$(document).ready(function( {$('#your_target_input').attr('value', ''); } );
reza laki
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.