Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2012, 17:43
Новичок на форуме
Отправить личное сообщение для denic-nik Посмотреть профиль Найти все сообщения от denic-nik
 
Регистрация: 10.10.2012
Сообщений: 3

После эмуляции события 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", то форма отправляется. Может это можно как-то обойти?
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2012, 09:02
Новичок на форуме
Отправить личное сообщение для denic-nik Посмотреть профиль Найти все сообщения от denic-nik
 
Регистрация: 10.10.2012
Сообщений: 3

Что, никто не знает?
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2012, 13:56
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от denic-nik
Что, никто не знает?
как браузер переписать чтоль? да, это политика безопасности
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2012, 19:44
Новичок на форуме
Отправить личное сообщение для denic-nik Посмотреть профиль Найти все сообщения от denic-nik
 
Регистрация: 10.10.2012
Сообщений: 3

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Click() не работает на объекте, созданном Ajax vovabigov jQuery 13 09.09.2012 14:25
Отправка из формы в форму.. gJam Элементы интерфейса 5 21.07.2011 11:42
У элемента img внутри form пропадает событие после onsubmit формы Eugene Events/DOM/Window 2 18.06.2009 19:21
Передача фокуса из формы после ввода символа kuh Общие вопросы Javascript 2 08.03.2009 19:50
Не срабатывает bind(и click) после load (или get) dijah jQuery 3 27.01.2009 20:05