2010-02-19 9 views
20

Gibt es JavaScript-Ereignisse in type=file Eingabe? I.E. Ich möchte eine zusätzliche file input bei der Auswahl Datei in einem der allready erstellt hinzuzufügen:HTML-Dateieingabe JS-Ereignisse

Diagramm:]:

file input 1 
file input 2 
file input 3 

Benutzer wählt eine Datei in input 1 und JS fügt neue Datei Eingang

file input 1 - somefile.txt 
file input 2 
file input 3 
*NEW* file input 4 

Ich bin auf der Suche nach sinnvollen Ereignis, auf dem ich addFileInput Methode binden kann.

ich auch jQuery 1.4 verwenden:]

Danke

+0

Es gibt keine "Eingabe [type = html]';) –

+0

Ich glaube, 'onchange' sollte funktionieren. –

+0

Danke Ionut ... denke schneller als schreiben, ich bin. :] –

Antwort

35

Ich glaube onchange sollte funktionieren.

+0

Das funktioniert bei Chrome 19 nicht, aber 'change' macht es. –

+4

@TylerCollier Das Vanilla-Ereignis ist 'element.onChange = function() {};' und das jQuery-Äquivalent ist '$ (element) .delegate ('change', function() {});'. – rxgx

+1

http://api.jquery.com/change/ – xilef

2

Ich glaube, Sie type=file bedeuten?

Die einzige sinnvolle Möglichkeit ist die Verwendung sowohl onclick und onchanged und verfolgen Sie den Inhalt, um zu sehen, ob es geändert wird.

24

Hier ist das Ereignis von Firebug protokolliert, wenn eine Datei mit Firebug Auswahl:

  • Klick clientX = 885, clientY = 207
  • Unschärfe
  • Fokus
  • Änderung
  • DOMActivate
  • DOMActivate
  • Mouseout-ClientX = 162, ClientY = 27

ich ändern erraten, ist derjenige, dem Sie suchen:

$ ('#your_form_id input[type=file]').live ('change', function() { 
    $(this).parent().append ($('<input type="file" />')); 
}) 

Sie müssen nur die Wähler anzupassen und der vorherige Code sollte funktionieren

+0

danke, ich habe es schon mit hilfe von ionut gemacht:] –