Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.09.2012, 21:22
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Не отправляется форма в ie7/8
К обычной форме есть необходимость прикреплять файл, сам input type file прячется стилями, поэтому вызываю окно выбора файла кликом по ссылке через js:
$('.link').click(function(){
    $('.fileInput').click(); // Открываем окно выбора файла
})

Кликаем, открываем окно, выбираем файл, всё вроде бы ок, но при сабмите формы в ie7/8, форма не отправляется, ничего не происходит. Но если проделать такой же алгоритм, только выбирая файл не по клику по ссылке, а через родной input type file , то форма отправляется как надо...
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2012, 22:05
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Я проверил у себя в IE 8 и форма нормально отправлялась. Возможно у вас там с обработкой событий какая то путаница ?

На таком коде тестил:
<!DOCTYPE HTML>
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>
    <form action="ii.php">
      <input type="file" style="display: none;" class="fileInput" />
      <span class="link">Select file</span>
      
      <input type="submit" value="submit" />
    </form>
    <script>
      $('.link').click(function() {
      	$('.fileInput').click();
      });
    </script>
  </body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 25.09.2012, 22:23
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

У меня вот как происходит, жму сабмит формы, при этом очищается значение поля input type file и ничего не происходит, жму сабмит 2-й раз и вот только потом форма отправляется с пустым значением поля input type file, никаких обработчиков больше нет, сломал голову, что в этой элементарной проблеме не так....
Ответить с цитированием
  #4 (permalink)  
Старый 25.09.2012, 22:31
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Мой пример, выше, у вас нормально работает в ИЕ ?
Если да, то покажите код на вашей странице (заранее сократив его, что бы можно было узреть проблему и не отвлекаться на лишнее), или ссылку на страничку
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2012, 23:49
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Если в вашем примере input type file добавить атрибут name, то форма также как у меня не отправляется...
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2012, 00:27
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

мде.. судя по всему, ИЕ не нравится симуляция клика, как вариант могу предложить использовать label:
<!DOCTYPE HTML>
<html>
  <head></head>
  <body>
    <form>
      <label for="myFile">Select File</label>
      
      <div style="width: 0px;height: 0px;overflow: hidden;display: inline-block;">
      	<input type="file" name="myFile" id="myFile" />
      </div>
      
      <input type="submit" value="submit" />
    </form>
  </body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2012, 01:02
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Работает в IE8, но в IE7 не срабатывает label for
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2012, 14:04
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Хммм, пример выше у меня и в ИЕ 7 тоже работает.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #9 (permalink)  
Старый 26.09.2012, 14:14
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Неа, еще раз проверил, в IE7 упорно не работает (забить на IE7 не могу), поэтому в качестве кроссбраузерного решения выбрал способ наложения текста и input type file друг на друга с помощью opacity: 0 и пары мелких трюков, решение было дернуто отсюда http://blueimp.github.com/jQuery-File-Upload/ (см. стили кнопки "Add Files")
P.s. IE7 тестил сперва в IETestere, затем в оригинальной сборке, в обоих случаях результат был одинаковый, затем потестил в IE9 (в режиме IE7) так да, работает, но мне нужна поддержка настоящего IE7

Последний раз редактировалось bayrach, 26.09.2012 в 14:22.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отправялется форма средствами JS kapman Javascript под браузер 6 13.05.2012 18:00
простая форма авторизации sedoyksa Общие вопросы Javascript 5 01.10.2011 22:29
не работает форма в окне, вызванном jquery page slide ikar jQuery 0 31.07.2011 22:55
Динамическая форма AnggelofDem Работа 12 06.06.2011 09:41
Всплывающая форма в центре страницы для гостевой книги angel-13th Элементы интерфейса 8 05.02.2011 20:10