2011-01-12 3 views
2

Ich habe eine Form, die eine Datei Eingabekontrolle hat: SoWie wird der Dateiname aus einer Dateieingabe mit jQuery erfasst?

<input type="file" onclick="this.blur()" name="descFile" /> 

, wenn der Benutzer eine Datei auswählt, zeigt der Pfad in dem Texteingabefeld (Standard-Browser Verhalten), aber würde das Geschäft wie ich Legen Sie eine Nachricht in Fettdruck unterhalb der Angabe, dass sie die hochzuladende Datei ausgewählt haben, vor dem Postback.

Gibt es eine Möglichkeit, Javascript zu verwenden, um das Ereignis "Select" irgendwie von der Dateieingabe einzufangen und in Fettschrift unterhalb der Dateieingabe anzuzeigen?

+0

Haben Sie den Dateinamen aufnehmen möchten, oder einfach nur die Tatsache, dass er ausgewählt eine Datei? – Jonas

+0

Nur dass sie eine Datei ausgewählt haben. Es ist merkwürdig, da ich dachte, dass die Browsersteuerung intuitiv genug ist, aber ich schätze, unsere Benutzer brauchen mehr Hinweise. –

Antwort

5
$('input[name="descFile"]').change(function(){ 
    var filename = $(this).val(); 
    $('<label>Filename selected: '+ filename +'</label>').insertAfter($(this)); 
}); 

Denken Sie daran, um es innerhalb oder ähnlich zu:

$(function(){ }); 
+0

Danke, das funktioniert gut . Nicht sicher, warum die Benutzer mehr eine Anzeige brauchen, aber so geht es. :) –

1

Es ist die Wert Attribut Ihrer Eingabe Tag, wenn ich Ihre Frage verstehe.

$('#file_attach').change(function(){ 

     path=$(this).attr('value'); 
     start = path.lastIndexOf("."); 
     alert("extention: "+start); 
}); 
1

Dies kann wie diese

$('input[type=file]').val() 

Wie auch immer getan werden, schlage ich vor, Name oder ID-Attribut mit Ihrem Eingang auszuwählen. Und mit Fall sollte es so aussehen:

$('input[type=file]').change(function(e){ 
    $in=$(this); 
    $in.next().html($in.val()); 
}); 
+1

Sie sollten der Person, die das ursprünglich geschrieben hat, Kredit geben: http://stackoverflow.com/questions/1299052/jquery-get-the-file-name-selected-from-input-type-file –

Verwandte Themen