Ich brauche einen Javascript-Code, der die Größe der Eingabedatei vor dem Hochladen jedes Mal überprüft, wenn der Eingabewert sich ändert (d. H. Jedes Mal, wenn der Benutzer eine Datei zum Hochladen auswählt).JavaScript-Funktion nur einmal aufgerufen statt jedes Mal
Bisher kam ich mit auf den Punkt:
var file = document.getElementById("myFile");
file.addEventListener('change', function() {
if (this.files[0].size > 2*1024*1024) {
alert('Max file size is 2 MB');
file.removeAttribute('value');
file.parentNode.replaceChild(file.cloneNode(true),file);
}
}
);
und die HTML ist:
<form action="?" method="post">
<input type="file" id="myFile" name="myFile" />
<input type="submit" value="upload" />
</form>
Nun, wenn ich den Javascript-Code wie das verlassen, funktioniert es nicht an alle. Aber wenn ich ändern Sie es wie diese
window.onload = function() {
// Same code above
}
es funktioniert, aber nur für die erste Datei der Benutzer auswählt.
Wie kann ich es ändern, damit es funktioniert jedes Mal der Benutzer wählt eine Datei aus? (möglichst ohne jQuery)
Könnten Sie es 'document.onload' versuchen zu ändern? – nikjohn
Das Problem ist, wenn die Datei zu groß ist, ersetzen Sie das Element - es hat keinen Ereignis-Listener mehr –
@DustinToothless - Was Sie denken, dass das helfen würde? – Quentin