Ich habe versucht, einen Hack in verschiedenen Positionen beschrieben, die verwendet:finden, wenn ‚Abbrechen‘ wurde auf Dateieingabe geklickt
document.body.onfocus = checkOnCancel();
Ein Beispiel:
var fileSelectEle = document.getElementById('fileinput');
fileSelectEle.onclick = charge;
function charge()
{
document.body.onfocus = checkOnCancel;
}
function checkOnCancel()
{
alert("FileName:" + fileSelectEle.value + "; Length: " + fileSelectEle.value.length);
if(fileSelectEle.value.length == 0) alert('You clicked cancel!')
else alert('You selected a file!');
document.body.onfocus = null;
}
Gibt es etwas falsch hier? Weil fileSelectedEle.value
immer den vorherigen Ausführungswert zurückgibt und NICHT den vom Benutzer ausgewählten. Ist dies das erwartete Verhalten der Eingabedatei? Wie löst man das, um die ausgewählte Datei zu lesen?
Sie können den Fehler reproduzieren von:
Schritt 1: select - einige wählen Sie eine Datei (und beachten Sie die Ausgabe)
Schritt 2: select - Presse abbrechen (und Bekanntmachung der Ausgang)
Meinst du 'document.body.onfocus = checkOnCancel;'? (Kein Funktionsaufruf.) – Scimonster
@Scimonster - Nein, ich meine document.body.onfocus = checkOnCancel(); (mit Funktionsaufruf) – SamSharma