выполнять функцию, закрыв (отменять) окно, которое открывает неудар в лунку file

У меня есть неудар в лунку file общий и текущий. Что, нажав, открывает тебе соответствующее окно, чтобы выбирать файл твоего компьютера.

У меня есть функция, которую мне загружает gif "грузя", когда ты даешь ему клик кнопке неудара в лунку; и выбрав изображение и обработав отправление изображения из-за ajax в сервер, этот gif скрывается.

Но как я скрываю gif, если пользователь дает "отменять" или закрывает окно, не выбирая файла?

gif скрытое, выбрав и, которое должно обрабатывать неудар в лунку file, потому что бросается событие onchange.

Как я могу делать ему?

<input type="file" id="file"/>

JS:

 $("#file").on("click", function(){
  $(".gif").show();

});
$("#file").on("change", function(){

$.ajax({
    ...,
complete(){
    $(".gif").hide();
    }
});

});
2
задан 21.07.2017, 01:26
1 ответ

Это форма, что я sirviГі в меня; это один из выборов, о которых он упоминает @Einer только, что взяло окно window, что он производит неудар в лунку file

https://jsfiddle.net/cromerog/1b3seqrw/7 /

, то, что осуществляется, состоит в том, что проверяют, если у окна есть фокус; если он теряет фокус (он отменяет, нажимает на ESC или выбирается файл) envГ - чтобы в скрывать gif.

<span id="status"> притворится как mostrarГ-a/ocultarГ-a gif.

$(function() {

    $("#status").hide();
    var window_focus;
	
    $(window).focus(function() {
    	window_focus = true;
    }).blur(function() {
        window_focus = false;
    });
			
    $( "#archivo" ).bind( "click", function() {
        $(".gif").show();
        $("#status").show();
    	var loopFocus = setInterval(function() {
            if (window_focus) {
    	    	clearInterval(loopFocus);
                $(".gif").hide();
                $("#status").hide();
                if ($("#archivo").val() === ''){
                    alert('Cancelado o Esc!');
                }
            }
       	}, 500);
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" action="prueba.php" enctype="multipart/form-data">
    <p>Archivo:</p>
    <input type="file" name="archivo" id="archivo" required/>
    <br>
    <br>
    <hr>
    <span id="status" class="hidden">Esperando un Click</span>
    <br>
    <input type="submit" value="Enviar" />
</form>

, Взятый как пример:
https://forum.imasters.com.br/topic/556543-evento-ao-cancelar-input-file-com-jquery/? do=findComment& comment=2220313

1
ответ дан 24.11.2019, 07:24