[JavaScript] Tömma textfält för en filuppladdningsbox?

Permalänk
Medlem

[JavaScript] Tömma textfält för en filuppladdningsbox?

Jag har en sida där jag skapat en div som fungerar som ett popup fönster med javascript, i denna popup har jag 2 textfält och en filuppladdningsbox. Jag använder popup saken för att kunna ladda upp filer via en hidden iframe utan att behöva ladda om sidan jag är på.

Problemet är att så fort jag laddat up en fil så finns sökvägen kvar i text rutan för uppladdningsboxen nästa gång popup fönstret visas. Det jag vill göra är att tömma den texten

var uploadbox = document.getElementById('uploadbox'); uploadbox.value = "";

vilket inte fungerar för uploadboxen, det fungerar för vanliga textfält.

Visa signatur

Desktop: Ryzen 9 3950x | RTX 2060 | 16Gb RAM | 512Gb + 256Gb SSD
NAS: HP Microserver Gen8 | 8GB Ram | 3x2Tb ZFS | FreeNAS
SRV: HP ML350p Gen8 | 64GB Ram | 2x E5-2630v2 | ESXI

Permalänk
Permalänk
Permalänk
Medlem

Javascript tillåter mer eller mindre bara readonly access till File input och går därmed inte att manipulera, vad du behöver göra är att skapa ett nytt file input och byta ut den med den nya.

Det smidigaste sättet är att använda sig av https://developer.mozilla.org/en-US/docs/DOM/Node.cloneNode

Helt otestad kod samt dne lär nog inte hamna rätt beroende på hur dinan noder funkar men i teorin något som detta.

var uploadbox = document.getElementById('uploadbox'); var dupNode = uploadbox.cloneNode(deep); var parentNode = element.parentNode; parentNode.removeChild(uploadbox ); parentNode.appendChild(dupNode);

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem

form.reset() fungerar utmärkt, iaf för det lilla jag hunnit testat än

Visa signatur

Desktop: Ryzen 9 3950x | RTX 2060 | 16Gb RAM | 512Gb + 256Gb SSD
NAS: HP Microserver Gen8 | 8GB Ram | 3x2Tb ZFS | FreeNAS
SRV: HP ML350p Gen8 | 64GB Ram | 2x E5-2630v2 | ESXI