파일 입력을 지우는 방법


87

아래는 파일 입력과 "파일 지우기"버튼을 표시하는 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 코드입니다. 브라우저 간 솔루션입니다.
Guillaume Poussel 2012 년

3
얘들 아, <input type=file />이다 readonly> =에서 파일을 선택한 후 IE8 보안상의 이유로, 여기에 유사하다 Q 및 기자 여기에 제안 된 솔루션.
Paul T. Rawkeen

1
<input type=file />데이터 유형이 파일이므로 빈 문자열을 입력 필드에 전달하여 지울 수 없습니다.
우스만 무굴

Chrome에서도 작동합니다. 이 stackoverflow.com/a/11953476/1830909 와 그 아래의 내 의견 을 보는 데 유용 할 수 있습니다 .
QMaster 2010 년

1
jquery를 사용하여 파일 입력에서 여러 파일 업로드에서 파일을 제거하려면 어떻게해야합니까?
항상-A-학습자

42

jQuery로 파일 입력 지우기

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

JavaScript로 파일 입력 지우기

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

7

이 방법도 사용하고 싶지만 이벤트가 새 개체에 계속 연결되도록하려면 bool true 매개 변수를 clone 메서드에 추가해야하고 내용을 지워야한다고 생각합니다.

    var input = $("#fileInput");

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

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



3

React 사용자 용

e.target.value = ""

그러나 파일 입력 요소가 다른 요소 ( htmlFor속성 포함) 에 의해 트리거 되면 이벤트가 없음을 의미합니다.

따라서 ref를 사용할 수 있습니다.

func 시작시 :

const inputRef = React.useRef();

입력 요소

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

그런 다음 onClick 함수 (예 :)에서 다음과 같이 작성할 수 있습니다.

inputRef.current.value = "" 
  • React Classes에서-같은 생각이지만 생성자의 차이점 : this.inputRef = React.createRef()

1

이것이 브라우저 간 가능하다는 것을 확신하려는 경우 또 다른 해결책은 태그를 제거 () 한 다음 추가 () 또는 prepend ()하거나 다른 방법으로 동일한 속성을 가진 입력 태그의 새 인스턴스를 다시 추가하는 것입니다. .

<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

나는 이와 같은 일을했고 그것은 나를 위해 일하고 있습니다.

$('#fileInput').val(null); 

0

제 경우에는 다른 솔루션이 이런 식으로 작동하지 않았습니다.

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

그러나 페이지에 두 개 이상의 파일 입력이있는 경우 모든 파일의 텍스트가 재설정됩니다.


0

입력 ID를 가져오고 다음과 같이 val을 입력합니다. 참고 : val 빈 큰 따옴표 val ( "") 사이에 공백을 두지 마십시오.

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

0

이 코드는 모든 브라우저와 모든 입력에서 작동합니다.

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

: 난 당신처럼 사용하는 것이 좋습니다$(document).ready(function( {$('#your_target_input').attr('value', ''); } );
레자 LAKI
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.