Отправка формы по 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, время: 15:34. |