JavaScript click event в обещании, затем [дубликат]

Используйте $HTTP_RAW_POST_DATA вместо $_POST.

Он предоставит вам данные POST как есть.

Вы сможете декодировать его с помощью json_decode() позже.

242
задан user28655 17 October 2008 в 01:56
поделиться

28 ответов

Вы не можете сделать это во всех браузерах, предположительно IE делает , но Mozilla и Opera этого не делают.

Когда вы составляете сообщение в GMail, функция «прикреплять файлы» реализована одним способом для IE и любого браузера, который поддерживает это, а затем реализовал другой способ для Firefox и тех браузеров, которые этого не делают.

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

75
ответ дан Jason Bunting 20 August 2018 в 23:19
поделиться
  • 1
    Убирайся. Ну, я, конечно, понимаю, что это доступно. Является ли это документированным где угодно? Я предполагаю, что это будет реализовано каждым браузером? – user28655 17 October 2008 в 00:47
  • 2
    Обновлен мой ответ, чтобы быть более правильным, чем предыдущий ответ - суть та же, но уточнение должно немного помочь. Этот парень столкнулся с той же проблемой: bytes.com/forum/thread542877.html – Jason Bunting 17 October 2008 в 01:19
  • 3
    Благодаря God FF5 этот щелчок – rshimoda 9 August 2011 в 22:17
  • 4
    Да, но Chrome, похоже, не позволяет кликать () :( – Romain Guidoux 28 December 2011 в 18:57
  • 5
    Чтобы прояснить приведенный выше комментарий, Chrome недавно был изменен, чтобы проверить, является ли файл input элементом видимым. Запуск метода click работает, в том числе в консоли, если элемент можно увидеть. – jwadsack 11 January 2012 в 00:32

Вы можете стрелять по клику () в любом браузере, но некоторым браузерам необходимо, чтобы элемент был видимым и сфокусированным. Вот пример jQuery:

$('#input_element').show();
$('#input_element').focus();
$('#input_element').click();
$('#input_element').hide();

Он работает со скровом перед click(), но я не знаю, работает ли он, не вызывая метод show. Никогда не пробовал это в Opera, я тестировал на IE / FF / Safari / Chrome, и он работает. Надеюсь, это поможет.

62
ответ дан Adrian Carneiro 20 August 2018 в 23:19
поделиться
  • 1
    Спасибо, что поделился. На всякий случай, когда вы не знали - вы можете использовать цепочку в jQuery: $(...).show().focus().click().hide(); :) – pimvdb 31 July 2011 в 13:22
  • 2
    @pimvdb: насколько я могу проверить, ваше решение работает только в Chrome. – Hoàng Long 10 October 2011 в 09:47
  • 3
    @ Hoàng Long: Вы имеете в виду цепочку или решение Florin Mogos? Я не считаю, что цепочка будет делать какие-либо различия между браузерами. – pimvdb 10 October 2011 в 15:28
  • 4
    @ HoàngLong Это работает для меня в IE 8 и 9, последних Chrome, Safari и Firefox. – Sami Samhuri 29 November 2011 в 21:03
  • 5
    Странный. Когда я тестировал, он не работает в Chrome в Ubuntu. – sandrew 24 December 2011 в 16:23

Я искал решение на весь этот день. И вот те выводы, которые я сделал:

  1. По соображениям безопасности Opera и Firefox не позволяют запускать ввод файла.
  2. Единственная удобная альтернатива - создать «скрытый» ввод файла (с использованием непрозрачности, а не «скрытый» или «дисплей: нет»!), а затем создайте кнопку «ниже». Таким образом, кнопка видна, но при нажатии на нее пользователь фактически активирует ввод файла.

Надеюсь, это поможет! :)

<div style="display: block; width: 100px; height: 20px; overflow: hidden;">
<button style="width: 110px; height: 30px; position: relative; top: -5px; left: -5px;"><a href="javascript: void(0)">Upload File</a></button>
<input type="file" id="upload_input" name="upload" style="font-size: 50px; width: 120px; opacity: 0; filter:alpha(opacity=0);  position: relative; top: -40px;; left: -20px" />
</div>
251
ответ дан Alexis Wilke 20 August 2018 в 23:19
поделиться
  • 1
    это решение отлично работает. Не уверен, почему это было упущено и не было увеличено. Это не совсем вопрос, о котором идет речь, но это отличная работа. Вы обнаружили, что это несовместимо с любыми браузерами? У меня нет времени, чтобы пробиться через все 10+ вкусов релевантных для тестирования. – Genia S. 15 September 2010 в 06:11
  • 2
    Это решение является удивительным. Благодаря!!! – SKR 21 September 2010 в 05:08
  • 3
    Фантастическое решение !!! Работает как шарм в FF3.5 +, IE8, Safari – TheVillageIdiot 26 April 2011 в 07:49
  • 4
    Спасибо за этот ответ, это потрясающе: D – mario.tco 20 July 2011 в 18:22
  • 5
    очень круто! ;-) отличный ответ bro – Luca Filosofi 31 July 2011 в 20:03
$(document).one('mousemove', function() { $(element).trigger('click') } );

Работала для меня, когда я сталкивался с подобной проблемой, это обычный eRube Goldberg.

5
ответ дан Baz 20 August 2018 в 23:19
поделиться

ЭТО ВОЗМОЖНО: под FF4 +, Opera?, Chrome: но:

  1. inputElement.click() следует вызывать из контекста действия пользователя! (не сценарий выполнения сценария)
  2. <input type="file" /> должен быть видимым (inputElement.style.display !== 'none') (вы можете скрыть его видимостью или чем-то другим, но не «отображаемым» свойством)
26
ответ дан Didier Ghys 20 August 2018 в 23:19
поделиться
  • 1
    Это решило это для меня. Мне пришлось добавить javascript в атрибут onclick вместо привязки к событию. – jasonlfunk 25 November 2013 в 19:28
  • 2
    Обеспечение единственного разумного решения. Метод переполнения является уродливым. – smok 21 March 2014 в 14:03
  • 3
    Ха! Я знал, что это должно быть чем-то с контекстом! Я заметил, что вызов inputElement.click() изнутри события keydown (ярлык для присоединения файла) работал, но вызов его в тайм-ауте или обратном вызове ajax был НЕ. Upvoted. – brettjonesdev 14 April 2014 в 17:31
  • 4
    Кстати, у кого-то есть какие-то дополнительные ресурсы в «контексте действия пользователя»? по сравнению с «контекстом выполнения скрипта»? Все, что я вижу при поиске, связано с контекстом выполнения и this. : / – brettjonesdev 14 April 2014 в 17:42
  • 5
    @bretjonesdev Я думаю, это означает, что он должен выполняться внутри обработчика событий, инициированного пользователем, например обработчик события клика, по сравнению с обещанием, тайм-аутом или любым другим инициированным пользователем событием. – Alex Guerra 21 March 2016 в 23:35

Он работает:

Из соображений безопасности в Firefox и Opera вы не можете запускать щелчок по вводу файла, но вы можете имитировать с помощью MouseEvents:

<script>
click=function(element){
    if(element!=null){
        try {element.click();}
        catch(e) {
            var evt = document.createEvent("MouseEvents");
            evt.initMouseEvent("click",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
            element.dispatchEvent(evt);
            }
        }
    };
</script>

<input type="button" value="upload" onclick="click(document.getElementById('inputFile'));"><input type="file" id="inputFile" style="display:none">
4
ответ дан kop 20 August 2018 в 23:19
поделиться
  • 1
    Обратите внимание, что createEvent() и initMouseEvent() теперь устарели. – Alexis Wilke 18 March 2016 в 02:07

Для тех, кто понимает, что вам нужно наложить невидимую форму по ссылке, но слишком ленивы писать, я написал ее для вас. Ну, для меня, но может также поделиться. Комментарии приветствуются.

HTML (где-то):

<a id="fileLink" href="javascript:fileBrowse();" onmouseover="fileMove();">File Browse</a>

HTML (где-то вас не волнует):

<div id="uploadForm" style="filter:alpha(opacity=0); opacity: 0.0; width: 300px; cursor: pointer;">
    <form method="POST" enctype="multipart/form-data">
        <input type="file" name="file" />
    </form>
</div>

JavaScript:

function pageY(el) {
    var ot = 0;
    while (el && el.offsetParent != el) {
        ot += el.offsetTop ? el.offsetTop : 0;
        el = el.offsetParent;
    }
    return ot;
}

function pageX(el) {
    var ol = 0;
    while (el && el.offsetParent != el) {
        ol += el.offsetLeft ? el.offsetLeft : 0;
        el = el.offsetParent;
    }
    return ol;
}

function fileMove() {
    if (navigator.appName == "Microsoft Internet Explorer") {
        return; // Don't need to do this in IE. 
    }
    var link = document.getElementById("fileLink");
    var form = document.getElementById("uploadForm");
    var x = pageX(link);
    var y = pageY(link);
    form.style.position = 'absolute';
    form.style.left = x + 'px';
    form.style.top = y + 'px';
}

function fileBrowse() {
    // This works in IE only. Doesn't do jack in FF. :( 
    var browseField = document.getElementById("uploadForm").file;
    browseField.click();
}
10
ответ дан McTrafik 20 August 2018 в 23:19
поделиться

Если вы хотите, чтобы метод click работал в Chrome, Firefox и т. д., примените следующий стиль к вашему входному файлу. Это будет прекрасно скрыто, это похоже на display: none;

#fileInput {
    visibility: hidden;
    position: absolute;
    top: 0;
    left: -5000px;
}

. Это просто, я протестировал его!

7
ответ дан Tom van der Woerdt 20 August 2018 в 23:19
поделиться
  • 1
    Мне нравится, что это лучший способ, поскольку некоторые старые браузеры ничего не будут делать с помощью inputElement.click (), если он скрыт. – theoutlander 17 January 2013 в 03:59
  • 2
    Почему бы не просто установить height и width на 0? – Solomon Ucko 26 May 2016 в 15:36

Попробуйте это решение: http://code.google.com/p/upload-at-click/

9
ответ дан Vitaly Fadeev 20 August 2018 в 23:19
поделиться
  • 1
    Это выглядит очень уродливо, по крайней мере, на IE9. – Kyberias 27 March 2012 в 08:56

Это чистое решение JavaScript для этой проблемы. Хорошо работает во всех браузерах

<script>
    function upload_image_init(){
        var elem = document.getElementById('file');
        if(elem && document.createEvent) {
           var evt = document.createEvent("MouseEvents");
           evt.initEvent("click", true, false);
           elem.dispatchEvent(evt);
        }
    }
</script>
2
ответ дан Adam Fischer 20 August 2018 в 23:19
поделиться
  • 1
    Спасибо !, это работало на FF, Safari и Chrome !. – leonardorame 30 May 2018 в 13:54

JS Fiddle: http://jsfiddle.net/eyedean/1bw357kw/

popFileSelector = function() {
    var el = document.getElementById("fileElem");
    if (el) {
        el.click();  
    }
};

window.popRightAway = function() {
    document.getElementById('log').innerHTML += 'I am right away!<br />';
    popFileSelector();
};

window.popWithDelay = function() {
    document.getElementById('log').innerHTML += 'I am gonna delay!<br />';
    window.setTimeout(function() {
        document.getElementById('log').innerHTML += 'I was delayed!<br />';
        popFileSelector();
    }, 1000);
};
<body>
  <form>
      <input type="file" id="fileElem" multiple accept="image/*" style="display:none" onchange="handleFiles(this.files)" />
  </form>
  <a onclick="popRightAway()" href="#">Pop Now</a>
    <br />
  <a onclick="popWithDelay()" href="#">Pop With 1 Second Delay</a>
    <div id="log">Log: <br /></div>
</body>

3
ответ дан Aidin 20 August 2018 в 23:19
поделиться

Вы можете использовать

<button id="file">select file</button>
<input type="file" name="file" id="file_input" style="display:none;">
<script>
$('#file').click(function() {
        $('#file_input').focus().trigger('click');
    });
</script>
0
ответ дан Avanish Kumar 20 August 2018 в 23:19
поделиться

Есть способы перенаправления событий в элемент управления, но не ожидайте, что вы сможете легко запускать события в управление огнем самостоятельно, поскольку браузеры будут пытаться заблокировать это (хорошие) соображения безопасности.

Если вам нужно только открыть диалоговое окно файла, когда пользователь нажмет что-нибудь, скажем, потому что вам нужны более удобные кнопки для загрузки файлов, то вы можете взглянуть на , что Шон Инман пришел с .

Мне удалось добиться запуска клавиатуры с творческим переключением фокуса внутри и вне контроля между keydown, keypress & amp; события для создания ключей. YMMV.

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

2
ответ дан Borgar 20 August 2018 в 23:19
поделиться

просто используйте тег метки, таким образом вы можете скрыть ввод и заставить его работать через связанную метку https://developer.mozilla.org/fr/docs/Web/HTML/Element/Label

3
ответ дан challet 20 August 2018 в 23:19
поделиться
  • 1
    Это правильный ответ, и его следует поощрять. – Wiertek 6 October 2017 в 09:35

Вы можете сделать это в соответствии с ответом из диалогового окна «Открыть файл» на & lt; a & gt; tag

<input type="file" id="upload" name="upload" style="visibility: hidden; width: 1px;     height: 1px" multiple />
<a href="" onclick="document.getElementById('upload').click(); return false">Upload</a>
1
ответ дан Community 20 August 2018 в 23:19
поделиться

Вот решение, которое работает для меня: CSS:

#uploadtruefield {
    left: 225px;
    opacity: 0;
    position: absolute;
    right: 0;
    top: 266px;
    opacity:0;
    -moz-opacity:0;
    filter:alpha(opacity:0);
    width: 270px;
    z-index: 2;
}

.uploadmask {
    background:url(../img/browse.gif) no-repeat 100% 50%;
}
#uploadmaskfield{
    width:132px;
}

HTML с «маленькой» помощью JQuery:

<div class="uploadmask">
    <input id="uploadmaskfield" type="text" name="uploadmaskfield">
</div>
<input id="uploadtruefield"  type="file" onchange="$('#uploadmaskfield').val(this.value)" >

Просто убедитесь, что maskfied is полностью охвачено истинным полем загрузки.

1
ответ дан DejanR 20 August 2018 в 23:19
поделиться

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

Тем не менее, на сегодняшний день fileInput.click () работает в текущем Chrome (36.0.1985.125 m) и в настоящее время Firefox ESR (24.7.0), но не в текущем IE (11.0.9600.17207). Наложение поля файла с непрозрачностью 0 поверх кнопки работает, но я хотел, чтобы элемент ссылки был видимым триггером, а подчеркивание hover не совсем работает в любом браузере. Он мигает, а затем исчезает, вероятно, браузер думает, действительно ли применяется стиль зависания или нет.

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

Это просто: расположите поле ввода файла offcreen (position: absolute; top: -5000px), поместите вокруг него элемент метки и вызовите щелчок на метке вместо самого поля файла.

Обратите внимание, что ссылка должна быть написана сценарием для вызова метода щелчка метки, он не делает этого автоматически, например, когда вы нажимаете на текст внутри элемента метки. По-видимому, элемент ссылки фиксирует щелчок, и он не перескакивает на метку.

Обратите внимание, что это также не позволяет показать текущий выбранный файл, так как поле вне экрана. Я хотел немедленно отправить файл, когда был выбран файл, так что это не проблема для меня, но вам понадобится несколько иной подход, если ваша ситуация другая.

3
ответ дан enigment 20 August 2018 в 23:19
поделиться
  • 1
    Хорошо, на теге кнопки, onclick = & quot; filetag.click () & quot; не работает с IE 9 и 10 (но работает с IE 11, Firefox 4/10/26/27/28, Chrome / Chromium 31/32/33/36, Safari 7, Opera 23). Но, если вы используете метку для = id-of-file-input & quot; (без onlick), он работает для IE 9/10/11. – luigifab 17 August 2014 в 21:29

это не невозможно:

var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);  
setTimeout(function(){ document.getElementById('input_field_id').dispatchEvent(evObj); },100);

Но как-то это работает, только если это функция, вызванная с помощью события click.

Итак, у вас может быть следующая настройка :

html:

<div onclick="openFileChooser()" class="some_fancy_stuff">Click here to open image chooser</div>
<input type="file" id="input_img">

JavaScript:

    function openFileChooser() {
      var evObj = document.createEvent('MouseEvents');
      evObj.initMouseEvent('click', true, true, window);  
      setTimeout(function()
      { 
        document.getElementById('input_img').dispatchEvent(evObj);      
      },100);      
    }
1
ответ дан EscapeNetscape 20 August 2018 в 23:19
поделиться
  • 1
    createEvent() и initMouseEvent() устарели. Вы должны использовать CustomEvent() сейчас ... – Alexis Wilke 18 March 2016 в 02:02

Надеюсь, это помогает кому-то - я провел 2 часа, стукнувшись головой:

В IE8 или IE9, если вы вообще запускаете ввод файла с помощью javascript (поверьте, что я попробовал их все), он не позволит вам отправить форму с помощью javascript, она просто будет терпеть неудачу.

Отправка формы с помощью обычной кнопки отправки может работать, но вызов form.submit ();

Мне пришлось прибегнуть к наложению кнопки выбора файла с прозрачным файловым входом, который работает.

1
ответ дан galatians 20 August 2018 в 23:19
поделиться
  • 1
    Кроме того, вы можете обернуть ввод файла в ярлык, чтобы в IE вы могли получить интерактивную область ярлыка для охвата всей области кнопок, тогда как только с тегом ввода файла, только половина из них можно щелкнуть в IE. – galatians 19 May 2014 в 15:38

Мое решение для Safari с jQuery и jQuery-ui:

$("<input type='file' class='ui-helper-hidden-accessible' />").appendTo("body").focus().trigger('click');
3
ответ дан Good-bye 20 August 2018 в 23:19
поделиться
  • 1
    heads up: не работает для firefox 33, chrome 38. trigger ('click') может работать только внутри контекста событий взаимодействия с пользователем - обработчиков событий. – Amit G 16 December 2014 в 07:29

Это сработало для меня:

<script>
    function sel_file() {
        $("input[name=userfile]").trigger('click');
    }  
</script>

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

<a href="javascript:sel_file();">Click</a>
1
ответ дан joan16v 20 August 2018 в 23:19
поделиться

Этот код работает для меня. Это то, что вы пытаетесь сделать?

<input type="file" style="position:absolute;left:-999px;" id="fileinput" />
<button  id="addfiles" >Add files</button>

<script language="javascript" type="text/javascript">
   $("#addfiles").click(function(){
      $("#fileinput").click();
   });
</script>
2
ответ дан Mat J 20 August 2018 в 23:19
поделиться

Теперь это возможно в Firefox 4 с предостережением, которое оно считает всплывающим окном и поэтому будет заблокировано всякий раз, когда появится всплывающее окно.

1
ответ дан Neil 20 August 2018 в 23:19
поделиться
  • 1
    На самом деле firefox4 улучшает состояние загрузки файлов. Моя проблема заключается в том, как сделать то же самое в браузере Google Chrome. – erick2red 25 April 2011 в 16:03

Я обнаружил, что если вход (файл) является внешней формой, тогда событие обжатия кликов вызывает диалог файла.

0
ответ дан nikita 20 August 2018 в 23:19
поделиться

Эй, это решение работает. для загрузки мы должны использовать MSBLOB

$scope.getSingleInvoicePDF = function(invoiceNumberEntity) {
   var fileName = invoiceNumberEntity + ".pdf";
   var pdfDownload = document.createElement("a");
   document.body.appendChild(pdfDownload);

   AngularWebService.getFileWithSuffix("ezbillpdfget",invoiceNumberEntity,"pdf" ).then(function(returnedJSON) {
       var fileBlob = new Blob([returnedJSON.data], {type: 'application/pdf'});
       if (navigator.appVersion.toString().indexOf('.NET') > 0) { // for IE browser
           window.navigator.msSaveBlob(fileBlob, fileName);
       } else { // for other browsers
           var fileURL = window.URL.createObjectURL(fileBlob);
           pdfDownload.href = fileURL;
           pdfDownload.download = fileName;
           pdfDownload.click();      
       }
   });
};

для AngularJS или даже для обычного javascript.

2
ответ дан Shankar Shastri 20 August 2018 в 23:19
поделиться

У меня был тэг <input type="button">, скрытый от просмотра. Я сделал прикрепление события "onClick" к любому видимому компоненту любого типа, такого как метка. Это было сделано с использованием либо инструментов разработчика Google Chrome, либо Firebug Mozilla Firefox, используя команду «edit HTML» правой кнопкой мыши. В этом случае укажите следующий скрипт или что-то подобное:

Если у вас есть JQuery:

$('#id_of_component').click();

, если нет:

document.getElementById('id_of_component').click();

Спасибо.

1
ответ дан Skuld 20 August 2018 в 23:19
поделиться

РАБОЧЕЕ РЕШЕНИЕ

Позвольте мне добавить к этому старому сообщению, рабочее решение, которое я использовал для использования, работает, вероятно, на 80% или более все браузеры как новые, так и старые.

Решение сложное, но простое. Первый шаг - использовать CSS и отобразить тип входного файла с «подэлементами», которые показывают, поскольку он имеет непрозрачность 0. Следующий шаг - использовать JavaScript для обновления своей метки по мере необходимости.

HTML Идентификаторы просто вставляются, если вам нужен быстрый способ доступа к определенному элементу, однако классы являются обязательными, поскольку они относятся к CSS, который устанавливает весь этот процесс

<div class="file-input wrapper">
    <input id="inpFile0" type="file" class="file-input control" />
    <div class="file-input content">
        <label id="inpFileOutput0" for="inpFileButton" class="file-input output">Click Here</label>
        <input id="inpFileButton0" type="button" class="file-input button" value="Select File" />
    </div>
</div>

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

.file-test-area {
    border: 1px solid;
    margin: .5em;
    padding: 1em;
}
.file-input {
    cursor: pointer !important;
}
.file-input * {
    cursor: pointer !important;
    display: inline-block;
}
.file-input.wrapper {
    display: inline-block;
    font-size: 14px;
    height: auto;
    overflow: hidden;
    position: relative;
    width: auto;
}
.file-input.control {
    -moz-opacity:0 ;
    filter:alpha(opacity: 0);
    opacity: 0;

    height: 100%;
    position: absolute;
    text-align: right;
    width: 100%;
    z-index: 2;
}
.file-input.content {
    position: relative;
    top: 0px;
    left: 0px;
    z-index: 1;
}
.file-input.output {
    background-color: #FFC;
    font-size: .8em;
    padding: .2em .2em .2em .4em;
    text-align: center;
    width: 10em;
}
.file-input.button {
    border: none;
    font-weight: bold;
    margin-left: .25em;
    padding: 0 .25em;
}

JavaScript Чистое и истинное, однако, как показано на рис. , некоторые OLDER (удаленные) браузеры могут все еще иметь проблемы с ним (например, Netscrape 2!) [/ ​​g4]

var inp = document.getElementsByTagName('input');
for (var i=0;i<inp.length;i++) {
    if (inp[i].type != 'file') continue;
    inp[i].relatedElement = inp[i].parentNode.getElementsByTagName('label')[0];
    inp[i].onchange /*= inp[i].onmouseout*/ = function () {
        this.relatedElement.innerHTML = this.value;
    };
};

Рабочий пример jsFiddle

3
ответ дан SpYk3HH 20 August 2018 в 23:19
поделиться

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

  1. Создать загрузку файла и отдельный элемент, содержащий изображение, которое вы хотите использовать в качестве кнопки
  2. . Расположите их для перекрытия и выполните файловый элемент backgroud и border прозрачный, чтобы кнопка была единственной видимой
  3. Добавьте javascript, чтобы IE открыл диалог при нажатии кнопки / файла
  4. Используйте событие onchange для отправьте форму, когда выбран файл

Это теоретически, поскольку я уже использовал другой метод для решения проблемы, но это может сработать.

2
ответ дан user83358 20 August 2018 в 23:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: