Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   После эмуляции события Click не работает отправка формы (IE 9) (https://javascript.ru/forum/css-html-internet-explorer/32295-posle-ehmulyacii-sobytiya-click-ne-rabotaet-otpravka-formy-ie-9-a.html)

denic-nik 10.10.2012 17:43

После эмуляции события 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", то форма отправляется. Может это можно как-то обойти?

denic-nik 11.10.2012 09:02

Что, никто не знает?

dmitriymar 11.10.2012 13:56

Цитата:

Сообщение от denic-nik
Что, никто не знает?

как браузер переписать чтоль? да, это политика безопасности

denic-nik 11.10.2012 19:44

На решение проблемы ушел день! Чтобы все работало как надо не следует эмулировать событие click()! Вместо этого можно css-ом наложить input (type="file") поверх кнопки загрузить и дать input-у opacity: 0! Таким образом пользователь, сам того не зная, будет кликать на input а не на ссылку (кнопку) => эмуляция события click (из-за которой собственно и не отправляется форма) отпадает и все прекрасно работает на любом браузере. Но тут есть 1 подводный камень! При таком решении не будут работать стили :hover для ссылки (кнопки), но это вполне решаемая проблема!

jazzlevit 01.08.2013 16:15

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


Часовой пояс GMT +3, время: 17:52.