Autor Zpráva
nethor
Profil
Zdravím,
ve formuláři mám <input type='file' ..> a chci aby se při vložení souboru přidal další input pro možnost nahrání dalšího souboru.
Níže uvedený script funguje pouze při clicku na první input,
na clonovaných inputech se událost click() vůbec nebyvolá.

Poradíte proč? .. a jak to řešit?


<table>
...
<tr><td>Fotografie: </td><td><input type='file'  name='Foto[]' value='' class='file MultiFile'></td></tr>
...
</table>

<script type="text/javascript" language="JavaScript">
<!--    
$('.MultiFile').click    (    function() { 
    var parentTd = $(this).parent("td");
    $(this).parent("td").append("<br>")    ;
    $(this).clone().val("").appendTo(parentTd)    ;
});        
//-->
</script>
yFang
Profil
nethor:
Nevyvolá se, protože click se nabinduje pouze na ten první, který v době provedení kódu existuje.

Řešením může být použít delegate events, událost kliknutí se nabinduje na nějaký nadřazený element, který exituje celou dobu, například na tabulku:
$('table').on('click', '.MultiFile', function(){ ...

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: