Ich habe ein Formular als
<form onSubmit="return disableForm(this);" action="upload.php" method="post" name="f" id="wizecho" enctype="multipart/form-data">
<input type="file" name="file" />
<button onClick="return disableForm(this),ajaxUpload(this.form,'wizecho_upload.php', '<br>Uploading image please wait.....<br>'); return false;">
Upload Image
</button>
</form>
Es ist ein Bild hochzuladen.
Hier muss ich auf die Schaltfläche klicken, um das Bild hochzuladen und ich muss onClick
event verwenden. Ich möchte die Upload-Schaltfläche entfernen und sobald die Datei am Eingang ausgewählt ist, möchte ich das Ereignis auslösen. Wie mache ich das??
javascript
jquery
ptamzz
quelle
quelle
Antworten:
Verwenden Sie das Änderungsereignis für die Dateieingabe.
quelle
Sie können das Ereignis onchange im Eingabefeld abonnieren:
und dann:
quelle
Dies ist eine ältere Frage, die eine neuere Antwort benötigt, die das Anliegen von @Christopher Thomas oben in den Kommentaren der akzeptierten Antwort anspricht. Wenn Sie nicht von der Seite weg navigieren und die Datei ein zweites Mal auswählen, müssen Sie den Wert löschen, wenn Sie auf klicken oder einen Touchstart ausführen (für Handys). Das Folgende funktioniert auch, wenn Sie von der Seite weg navigieren und jquery verwenden:
quelle
val('')
, was in den meisten Browsern nicht funktioniert.element.setAttribute("value", "")
Wenn Sie jQuery nicht verwenden, müssen Sie es verwendenelement.value = ""
, damit das Dateielement wirklich richtig gelöscht wird.Tun Sie, was immer Sie tun möchten, nachdem die Datei erfolgreich geladen wurde. Setzen Sie den Wert der Dateisteuerung nach Abschluss Ihrer Dateiverarbeitung auf eine leere Zeichenfolge. Daher wird .change () immer aufgerufen, auch wenn sich der Dateiname ändert oder nicht. wie zum Beispiel kannst du dieses Ding machen und hast für mich wie Charme gearbeitet
quelle
Lösung für Vue-Benutzer: Das Lösen eines Problems, wenn Sie dieselbe Datei mehrmals hochladen und das @ change-Ereignis nicht ausgelöst wird:
quelle
<input type = "file" @ change = "onFileChange" class = "Eingabe hochladen-eingeben" ref = "inputFile" />
quelle