Отправка формы по onchange инпута
Приветствую!
Есть такое дело. Нужно запустить отправку формы по событию "onchange", которое повешано для инпута внутри формы, сам инпут с типом "file". Я это представляю следующим способом: <form action='uploader.php' method='post' enctype='multipart/form-data'> <input type='file' name='file' onchange='runUpload()' /> </form>
function runUpload(){
// здесь вешаем действия для отправки ???
}
Какими способами можно сие осуществить? |
SuperZALMAN,
c помощью метода submit у формы:
function runUpload () {
document.forms[0].submit();
}
|
почему то для данной формы такой прием не работает, работает вот такой (если при этом еще доьавить кнопку сабмит с ид):
function runUpload () {
$('#submitBtn').click();
}
... но, в IE отказывается работать! |
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();
}
|
В IE будет работать только в том случае, когда onchange было вызвано нажатием на кнопку "обзор.." самого инпута, а не генерацией клика для этого инпута. Иначе IE выдаст ошибку "Отказано в доступе".
|
Обманка для ИЕ 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>
|
$('selector').change(function(e){runUpload(e)})
|
| Часовой пояс GMT +3, время: 23:25. |