Autor Zpráva
swaky
Profil *
Ahoj,

řeším klasický problém se špatně vypadajícím file inputem a tak používám klasický fígl:

<input id="FileTextBox" type="text" OnClick="$('#FileUpload').click();" OnKeyDown="return false;" />
<input id="FileUpload" type="file" name="FileUpload" style="display: none;" OnChange="$('#FileTextBox').val($(this).val());" />

Toto funguje bez problémů ve Firefoxu a v IE, ale nefunguje to v Chromu, Opeře a Safari.

Nevíte někdo co s tím?

Díky.
_es
Profil
swaky:
Toto funguje bez problémů ve Firefoxu a v IE, ale nefunguje to v Chromu, Opeře a Safari.
Pod „funguje“ myslíš čo? Že sa ti v <input id="FileTextBox"> zobrazí názov súboru aj s kompletnou správnou cestou? To dosť pochybujem, pre novšie verzie IE a FF. Musíš rátať s tým, že prehliadače obmedzujú prístup k vlastnosti value pre input s type=text.

klasický problém se špatně vypadajícím file inputem a tak používám klasický fígl
Niekto sa zase pozerá na to tak, že by mal dialóg na výber súboru vyskočiť len pri reakcii na <input type="file"> a tak je užívateľ chránený pred teoretickým obťažovaním takýchto dialógov. Niektoré prehliadače to môžu povoliť len pre nejaké udalosti iných prvkov - napríklad onclick, no je dosť pravdepodobné, že to novšie verzie tiež zakážu. Ten „zle vyzerajúci file input“ má pre návštevníka výhodu, že vie, že sa jedná o pole na výber súboru.
swaky
Profil *
Stane se to ze se mi nezobrazí ten dialog pro zvolení souboru na disku. Takže problém bude asi někde v OnClick="$('#FileUpload').click();"
_es
Profil
swaky:
Takže problém bude asi někde v OnClick="$('#FileUpload').click();"
„Problém“ bude v bezpečnostných obmedzeniach prehliadačov, niektoré umožňujú vyvolať dialóg na vybratie súboru len cez príslušné pole na vybratie súboru.
LosFilipos
Profil
swaky:
Udělal jsem si pár pokusů a vyšlo z toho následující: http://tests.designovej.eu/djpw/click.php

Opera a Chrome (Safari jsem netestoval) má problém s funkcí click(), pokud se volá na element s display:none. Pokud se input zobrazí, nebo je skrytý visibility:hidden, pak vše funguje, jak má. Každopádně $('#FileTextBox').val($(this).val()); tam podle mě být nemusí, jelikož se input file odešle tak jako tak.
kurkuma
Profil *
musis umistit ten input file nad ten textovy input a dat mu opacity: 0;
jine reseni neni (aby to fungovalo vsude)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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