Здравствуйте. После долгих мучений написал код, который проверяет перед отправкой, что за файл ему хочет отправить пользователь. Скрипт в итоге должен позволять оnправлять только файлы типа .doc и .docx, а если пользователь подсовывает ему другого типа файл, скрипт выдает алерт (мол, нужен только правильный тип файла, загрузите другой), и очищает input file.
А загвоздка такая - в IE и Opera сей скрипт работает некорректно - при первом "подсовывании" левого файла скрипт срабатывает, а при втором - уже нет. В мозилле, хроме все норм работает.
Вот код:
<script language="JavaScript">
function newkrechet() {
if(username.value.substring(username.value.lastIndexOf('.')+1,username.value.length).toLowerCase()!='doc')
{ if (username.value.substring(username.value.lastIndexOf('.')+1,username.value.length).toLowerCase()!='docx') {alert('Необходимо выбрать .doc или .docx файл для загрузки!');
clearFileInput();};};}
</script>
<script language="JavaScript">
function clearFileInput() {
document.getElementById("fileinputplace").innerHTML='<input name="file_name[]" required="required" type="file" id="username" size="26" onChange="javascript: newkrechet();">';
}
</script>
<form>
<span id="fileinputplace"><input type="file" required="required" name="file_name[]" id="username" size="26" onChange="javascript:if(username.value.substring(username.value.lastIndexOf('.')+1,username.value.length).toLowerCase()!='doc')
{ if (username.value.substring(username.value.lastIndexOf('.')+1,username.value.length).toLowerCase()!='docx') {alert('Необходимо выбрать .doc или .docx файл для загрузки!');
clearFileInput();};};"></span>
</form>
Причем если убрать теги <form> </form>, то скрипт роботает во всех браузерах. Но если их оставить (а их нельзя убрать), то корректная работа будет только в мозилле и хроме....Посоветуйте, как что поправить...