очистка 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 (на локальном сервере тоже он), ну слава богу :) |
Цитата:
|
Цитата:
но кто после ie8, который ставится с w7 по умолчанию будет ставить ie<11 w8/8.1 (условно vista2) вообще никто использовать не должен (там ie10), сразу переходят на w10 в общем, если следовать классическому положению "ie нужен для того, чтобы скачать нормальный браузер", то всё будет в порядке :) сочувствую тем, для кого это не так :cray: |
В IE9-10 работает смена type
input.value = '';
if (input.value)
input.type = 'text';
input.type = 'file';
}
|
Цитата:
|
Цитата:
Тема месяц назад поднималась: http://javascript.ru/forum/dom-windo...li-grabli.html |
Цитата:
|
Цитата:
Цитата:
|
Рабочий вариант
http://jsfiddle.net/eCbd6/25/ |
| Часовой пояс GMT +3, время: 00:18. |