Подтвердить что ты не робот

Как вызвать функцию JavaScript после выбора файла из окна "Выбрать файл" и его закрытия?

У меня есть элемент ввода файла

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

Как вызвать функцию JavaScript после выбора файла из диалогового окна и его закрытия?

4b9b3361

Ответ 1


jQuery("input#fileid").change(function () {
    alert(jQuery(this).val())
});

Ответ 2

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

изменение будет действовать, если вы поместите script под вход

<script type="text/javascript">
$(document).ready(function(){
    $("#fileid").on('change',function(){
        //do whatever you want
    });
});
</script>

Ответ 3

<script>
       function example(){
               alert('success');
       }
</script>


<input type="file" id="field" onchange="example()" >

Ответ 4

Попробуйте объявить в верхней части файла:

<script type="text/javascript">
  // this allows jquery to be called along with scriptaculous and YUI without any conflicts
  // the only difference is all jquery functions should be called with $jQ instead of $
  // e.g. $jQ('#div_id').stuff instead of $('#div_id').stuff
  $jQ = jQuery.noConflict();
</script>

то

<script language="javascript">   
$jQ(document).ready(function (){
    jQuery("input#fileid").change(function () {
        alert(jQuery(this).val());
    });
});

(вы можете поместить оба в тег <script>, но вы можете просто объявить первую часть в родительском макете, например, и использовать $jQ всякий раз, когда вы используете jQuery в своих дочерних макетах, очень полезно при работе с RoR например)

как указано в комментариях в другом ответе, это будет срабатывать только ПОСЛЕ того, как вы выберете файл и нажмите "Открыть". Если вы просто нажмете "Выбрать файл" и не выбираете ничего, он не будет работать.

Ответ 5

Я думаю, что ваша цель достижима, но AFAIK нет такого события.

Но для достижения этого вам нужно сотрудничать с 3-мя событиями, Я предполагаю, что вам просто нужно знать о имени файла. Я создал прогулку здесь

  • Во-первых, событие изменения просто запускается, когда происходит фактическое изменение, выбор одного и того же файла не приведет к событию изменения, поэтому откройте диалоговое окно открытия и отмените его.
  • Затем, щелкнув по выбору файла, элемент ввода получит фокус, когда всплывающее диалоговое окно файла откроет входной элемент, потеряв фокус.
  • Когда всплывающее диалоговое окно будет закрыто, элемент ввода восстановит фокус.
  • Таким образом, вы можете запустить проверку на стороне клиента на стороне клиента, когда элемент ввода потеряет фокус "снова".