После эмуляции события Click не работает отправка формы (IE 9)
Вот код:
<script type="text/JavaScript"> $(document).ready(function(){ //Событие клик на кнопку загрузить $('#uploadFiles').click(function(){ $('#filesArr').click(); }); //Событие изменения значения поля file $('#filesArr').change(function(e){ $('#UploadFilesForm').submit(); //На этом месте ошибка!!! SCRIPT5: Отказано в доступе. }); }); </script> <a id="uploadFiles" href="#">Выбрать файл</a><br/> <iframe id="fr" name="fr" ></iframe> <form id="UploadFilesForm" name="UploadFilesForm" method="POST" action="testUpload.php" enctype="multipart/form-data" target="fr"> <input id="filesArr" name="filesArr" type="file"/> </form> Я так понимаю это политика безопасности браузера выносит мне мозг... Ошибка возникает только после нажатия на ссылку "Выбрать файл"! Если до этого пользоваться стандартным input type="file", то форма отправляется. Может это можно как-то обойти? |
Что, никто не знает?
|
Цитата:
|
На решение проблемы ушел день! Чтобы все работало как надо не следует эмулировать событие click()! Вместо этого можно css-ом наложить input (type="file") поверх кнопки загрузить и дать input-у opacity: 0! Таким образом пользователь, сам того не зная, будет кликать на input а не на ссылку (кнопку) => эмуляция события click (из-за которой собственно и не отправляется форма) отпадает и все прекрасно работает на любом браузере. Но тут есть 1 подводный камень! При таком решении не будут работать стили :hover для ссылки (кнопки), но это вполне решаемая проблема!
|
спасибо полезно, жаль только в ie9 если нажать не по самой кнопке input="file" а по ее текстовому полю где вводится текст то окно загрузки файла открывается только при двойном щелчке.
|
Часовой пояс GMT +3, время: 02:52. |