ugrás a tartalomhoz

file input reset

C_hris · 2007. Már. 21. (Sze), 21.01
Sziasztok!

Hogyan lehet egy file input elem értékét lenullázni javascripttel?

Ez működik Firefox-al, de Exporerben semmi hatása.
target.value='';

form.reset(); pedig azért nem jó mert az összes többi elemet is visszaállítja.

Tud valaki más megoldást?
 
1

Újra cserélés?

attlad · 2007. Már. 21. (Sze), 22.31
Hm, én csak körülményes megoldást tudok. Pl. végigmész az űrlap elemein, veszed mindegyik értékét és beállítod default értéknek (defaultValue = value) és a végén reset(). Vagy klónozhatnád az INPUT-ot, és utána a klónra cseréled le az eredetit (klónozáskor az IE törli az értékét) de ez a megoldás Operában nem működik. Az elsőn kívül még maradt az hogy létrehozol egy új INPUT elemet és lecseréled rá a régit, az új már nyilván üres lesz. Persze lehet van jobb megoldás is..

function clearFileInput(fileInputId)
{
	var attribs = ['type', 'name', 'class', 'id'];
	var oldInput = document.getElementById(fileInputId);
	var newInput = document.createElement('input');
	for (var i in attribs) {
		newInput.setAttribute(attribs[i], oldInput.getAttribute(attribs[i]));
	}
	oldInput.parentNode.replaceChild(newInput, oldInput);
}
2

megnézem

C_hris · 2007. Már. 21. (Sze), 23.23
Köszi ezt megnézem, lehet adni így onchange attribútumot is?
3

Na igen

attlad · 2007. Már. 22. (Cs), 00.10
Ha inline van megadva az onchange (ami kerülendő megoldás) akkor csak be kell írni a tömbbe azt is, hogy azt is átmásolja, viszont ha máshogy pl. addEventListener-rel van csatolva az esemény akkor nem fog működni. (De még mindig ott van a defaultValue beállítás aztán reset().)
4

sikerült

C_hris · 2007. Már. 22. (Cs), 22.06
Sikerült megoldani a példád alapján, ez volt a legegyszerűbb megoldás.
Mégegyszer thx.