Autor | Zpráva | ||
---|---|---|---|
swaky Profil * |
#1 · Zasláno: 15. 3. 2012, 08:54:16
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 * |
#3 · Zasláno: 15. 3. 2012, 10:00:39
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 |
#4 · Zasláno: 15. 3. 2012, 10:09:22
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 * |
#6 · Zasláno: 16. 3. 2012, 10:58:35
musis umistit ten input file nad ten textovy input a dat mu opacity: 0;
jine reseni neni (aby to fungovalo vsude) |
||
Časová prodleva: 12 let
|
0