2013-11-02 2 views
1

Ниже приведен код страницы, однако вы увидите в голове, что я положил javascript, который должен проверять, есть ли файл, выбранный через поле ввода файла, расположенное в нижней части кода , После того, как он обнаружит выбор файла, он должен автоматически отправить форму, но по какой-то причине она не отправляется автоматически. Почему это не работает? Заранее спасибо!Почему эта форма не является автоматической отправкой по файлу?

JavaScript: (в head)

<head> 
    <script type="text/javascript"> 
     document.getElementById("photofield").onchange = function() { 
      document.getElementById("form").submit(); 
     } 
    </script> 
</head> 

HTML (форма):

<form enctype="multipart/form-data" action="photoupload.php" method="post" id="form"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="524288"> 
    <p><input id="photofield" type="file" name="upload" /></p> 
    </fieldset> 
    <div align="center"><input type="submit" name="submit" value="Submit" /></div> 
    <input type="hidden" name="submitted" value="TRUE" /> 
</form> 
+0

Попробуйте 'document.getElementById (« form »). Trigger ('submit');' вместо 'document.getElementById (« form »). Submit();' –

+0

Его работа для вас? –

ответ

0

Это потому, что у вас есть входной элемент (submit button) с именем submit и это проблема, если вы измените имя кнопки отправки на что-то еще, чем submit, тогда это сработает, например, чанг д ваш отправить код кнопки для btn_submit вместо submit

<input type="submit" name="btn_submit" value="Submit" /> 

Теперь попробуйте этот

window.onload = function(){ 
    document.getElementById("photofield").onchange = function() { 
     document.getElementById("form").submit(); 
    }; 
}; 

С именем submit, он выдает следующую ошибку

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function 

он устанавливает свойство submit в HTMLFormElement, поэтому способ submit в prototype элемента формы не может быть выполнен, проверьте this working example (протестирован только в Chrome).

Кроме того, важно, чтобы зарегистрировать событие в окне onload (также прочитать addEventListener и читать this тоже) событие, потому что форма не доступна, когда код выполняется в разделе head и бросит следующее сообщение об ошибке

Cannot set property 'onchange' of null 
Смежные вопросы