очистка input, с типом file
Доброго времени суток. Нужно очистить заполненное поле ввода типа file.
Пробовал $("#my_file").prop("files", []) и странный метод document.getElementById("my_file").innerHTML = document.getElementById("my_file").innerHTML отсюда - ничего не работает(проверял только в последнем FF). Подскажите люди добрые, как это поле зачистить(не цепляя к нему отдельную форму, разумеется:) ). |
как вариант пересоздать элемент
|
element.prop('value', null); |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
http://designformasters.info/lab/cle...put/index.html сам пример реализует один из вариантов того, про что ведёт речь devote |
Через input.value не получается?
<html> <head> </head> <body> <input id="inp" type="file" /> <button id="but"> </button> <script> var but=document.querySelector("#but") var inp=document.querySelector("#inp") but.onclick=function(){ inp.value="" } </script> </body> </html> |
Всем спасибо, в моём случае самым простым вариантом оказалось обернуть файлы в формы и очищать их $("#form_my_file")[0].reset();
Сброс value нужно будет проверить, очень неочевидный вариант, учитывая отсутствие такого свойства у файлов :) . |
Цитата:
|
Цитата:
|
input.value = ""; вполне кроссбраузерный вариант
удивляет то, что в ie11 до сих пор нет fakepath http://www.w3.org/TR/2011/WD-html5-2...value-filename http://www.w3.org/TR/2011/WD-html5-2...e-upload-state <!DOCTYPE html> <meta charset="utf-8"/> <script> function extractFilename(path) { var x; x = path.lastIndexOf('\\'); if (x >= 0) // Windows-based path return path.substr(x+1); x = path.lastIndexOf('/'); if (x >= 0) // Unix-based path return path.substr(x+1); return path; // just the filename } </script> This can be used as follows: <p><input type=file name=image onchange="updateFilename(this.value)"></p> <p>The name of the file you picked is: <span id="filename">(none)</span></p> <script> function updateFilename(path) { var name = extractFilename(path); document.getElementById('filename').textContent = name; alert(path); } </script> PS: хотя вру, здесь на сайте (а не локально) в ie всё-таки вывело fakepath (на локальном сервере тоже он), ну слава богу :) |
Часовой пояс GMT +3, время: 01:51. |