Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправка формы по onchange инпута (https://javascript.ru/forum/jquery/32629-otpravka-formy-po-onchange-inputa.html)

SuperZALMAN 23.10.2012 21:23

Отправка формы по onchange инпута
 
Приветствую!
Есть такое дело. Нужно запустить отправку формы по событию "onchange", которое повешано для инпута внутри формы, сам инпут с типом "file".
Я это представляю следующим способом:
<form action='uploader.php' method='post' enctype='multipart/form-data'>
<input type='file' name='file' onchange='runUpload()' />
</form>
function runUpload(){
    // здесь вешаем действия для отправки ???
}
Какими способами можно сие осуществить?

Hoshinokoe 23.10.2012 22:07

SuperZALMAN,
c помощью метода submit у формы:
function runUpload () {
document.forms[0].submit();
}

SuperZALMAN 23.10.2012 22:24

почему то для данной формы такой прием не работает, работает вот такой (если при этом еще доьавить кнопку сабмит с ид):
function runUpload () {
$('#submitBtn').click();
}

... но, в IE отказывается работать!

Hoshinokoe 23.10.2012 22:42

SuperZALMAN,

у меня работает в IE и FF. Убедитесь, что вы отправляете нужную форму. Добавь id для формы.
<form id="uploader" action='uploader.php' method='post' enctype='multipart/form-data'>
<input type='file' name='file' onchange='runUpload()' />
</form>
function runUpload(){
    $('#uploader').submit();
}

mihan_k 08.02.2013 16:49

В IE будет работать только в том случае, когда onchange было вызвано нажатием на кнопку "обзор.." самого инпута, а не генерацией клика для этого инпута. Иначе IE выдаст ошибку "Отказано в доступе".

Deff 08.02.2013 18:21

Обманка для ИЕ 8 и выше
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
</html><form id="uploader" action='uploader.php' method='post' enctype='multipart/form-data'>
<label id=file> Файл <br/>
<input type='file' name='file' onchange='runUpload()' /><label>
</form>


<script>
function runUpload(){
    $('#uploader').submit();
}
setTimeout("document.getElementById('file').click()",1000); //Тест
</script>

  </body>

CiliZ 09.02.2013 20:32

$('selector').change(function(e){runUpload(e)})


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