Autor Zpráva
king26
Profil
Ahoj,
řeším teď v IE9 (níž jsem to nezkoušel) problém s INPUT type=file.

Můj plán byl, aby tento input byl skrytý a obsluhoval jsem ho pomocí jíného prvku.

Pokud pomocí JavaScriptu zavolám na INPUT click(), otevře se FileOpen dialog -> do teď vše funguje jak má.

Bohužel, pokud chci odeslat formulář pomocí INPUT type=submit, nejprve se všechny takto vyplňené INPUT type=file vymažou (na každý klik na submit jeden) a teprve potom se formulář odešle, bez souborů. Pokud vynechám click() a vyberu soubor ručně kliknutím na viditelný INPUT type=file a formulář odešlu, vše funguje normálně. Nedá se toto nějak vyřešit?

Včera jsem 2hodiny hledal na Googlu, ale bez výsledku.

Děkuji za odpověď.


Jen ještě upřesním, jak to dělám:
function messageAttachmentAdd() {
    var box = document.getElementById('messageAttachmentBox');
    var newElement = document.createElement('input');
    newElement.type = "file";
    newElement.name = "messageAttachment[]";
    newElement.onchange = function() {
        alert(this.value);
    };
    box.appendChild(newElement);
    newElement.focus();
    newElement.click();
    newElement.blur();

}

Formulář poté nemá žádný onsubmit a ani INPUT type=submit nemá žádnou obslužnou JavaScript funkci.
_es
Profil
king26:
řeším teď v IE9
V iných prehliadačoch si to už skúšal? Teoretická možnosť nepretržitého obťažovania návštevníka rôznymi vyskakovacími oknami prehliadača bude asi rôzne obmedzená nielen v IE9. Mohla by pomôcť „živá“ ukážka - môže trebárs záležať na tom, ako je funkcia messageAttachmentAdd volaná. Možno ti pomôže: Nefunkční click event na file input z jiného inputu (jQuery)
king26
Profil
V ostatních prohlížečích to funguje normálně, soubor se odešle. Pouze IE vymaže hodnotu INPUTU a dále nic nedělá. Až na další klik (pokud je INPUT jeden) formulář odešle.
_es
Profil
king26:
Pouze IE vymaže hodnotu INPUTU
Však v tej funkcii ten input len vytváraš, aká hodnota sa „vymaže“? Načo tam je použitá metóda focus?
king26
Profil
Živá ukázka: zde


Však se otevře OpenFile dialog a soubor vyberu.

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:

Prosím používejte diakritiku a interpunkci.

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