Autor Zpráva
Enngage
Profil
Zdravim,
mam formular, ktery zpracovava nekolik textboxu a nekolik uploadu souboru - <input type="file">, muj problem je v tom, ze bych chtel mit vedle kazdeho toho inputu na file tlacitko reset, ktere vymaze obsah tohoto file. Zkousel jsem klasicky reset, ale vzdy mazal kompletne cely formular vsetne vsech textboxu a to nechci. Jediny zpusob kdy mi to fungovalo byl ten, kdy jsem pro to stvoril zvlast formular, ale to jsem mel zase problem s odesilanim vsech dat naraz... Jakym zpusobem se tohle da vyresit?
jenikkozak
Profil
Enngage:
Jakym zpusobem se tohle da vyresit?
<span onclick="getElementById('id_políčka_formuláře').value=''" style="cursor:pointer">Odmáznout hodnotu</span>

Potíž je ovšem v tom, že ne všechny prohlížeče dovolují k obsahu políčka s typem file přistupovat, takže výše uvedený kód nebude spolehlivě fungovat. (Např. v IE.) Možná někdo přijde s lepším řešením...
Enngage
Profil
jenikkozak:
Diky, vyzkousel jsem to, ale bohuzel mam pro tebe spatnou zpravu... Z nejnovejsi Opery, Firefoxu a trosku starsiho IE tohle funguje prave jenom v tom IE:-) Musi to jit jeste nejak jinak:)
johnl
Profil
Enngage:
Nebude chyba na tvoj straně? Když vyzkouším jen :
<input type="text" id="input"><br>
<span onclick="getElementById('input').value=''" style="cursor:pointer">Odmáznout hodnotu</span>
tak to funguje, v Opeře, Chrome i Firefoxu.. Případně ukaž svůj kód, zda jsi někde neudělal chybu.. ;)
Str4wberry
Profil
Důležité je si uvědomit, johnli, že Enngage potřebuje pracovat s <input type=file>, který kvůli bezpečnosti má jistá omezení.
Enngage
Profil
Ano, máš pravdu, funguje, ale je tu dalsi ale:

tohle funguje:
<input type="text" id="input"><br>
<span onclick="getElementById('input').value=''" style="cursor:pointer">Odmáznout hodnotu</span>


tohle uz ne
<input type="text" name="input"><br>
<span onclick="getElementById('input').value=''" style="cursor:pointer">Odmáznout hodnotu</span>


a s file mi to nejde vubec
<input type="file" id="input" style="width: 40%" style="cursor:hand;"/> <span onclick="getElementById('input').value=''" style="cursor:pointer">Odmáznout hodnotu</span>
shaggy
Profil
Enngage:
tohle uz ne
A vieš prečo? Schválne, skús si prečítať, čo vlastne píšeš do kódu:
getElementById('input')
vs
id="input">
vs
name="input">
Enngage
Profil
Tohle jsem si neuvedomil. Diky... A ty omezeni u toho file musi jit nejak prekonat, ne? Protoze jakmile uzivatel neco vybere v tom file, tak to nejde uz smazat, bud muze vybrat jiny soubor nebo smazat cely formular, coz mi neprijde jako dobre reseni... V krajnim pripade bych pouzil i nejaky jiny typ "uploadovaciho formulare".
Str4wberry
Profil
Co přepsat ten <input type=file> tím samým kódem?

Něco jako:
<span id=obal><input type=file></span>
<button onclick='document.getElementById("obal").innerHTML = document.getElementById("obal").innerHTML; return false'>Odstranit</button>

Viz živá ukázka.
Enngage
Profil
Děkuji za pomoc! Ten s tim buttonem fungoval, akorat button odesila formular. Stacilo to ale prepsat na
<span onclick='document.getElementById("obal1").innerHTML = document.getElementById("obal1").innerHTML'>Odstranit</span>
a funguje vyborne.
Str4wberry
Profil
Ano, nebo stačí dopsat return false. Dále je vhodné takováto tlačítka vypisovat JavaScriptem, ať bez jeho podpory není na stránce zbytečně nefunkční tlačítko, to jen tak na okraj.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0