jupp kleingeist: <input type"file"...

Hallo,

ich muß doch noch einmal Fragen stellen:

Nach dem Aufruf(ancklicken) von <input type"file"... ist beim weiteren Gebrauch das Inputfeld immer mit der letzten Auswahl vorbelegt.

a) wie kann ich diese Vorbelegung löschen
   mit document.getElementsByTagName("input")[0].value=""
   oder ähnlichem geht es nicht.

b) dieses Inputfeld würde ich überhaupt gerne unterdrücken

c) Die Beschriftung des Buttons (Durchsuchen) würde ich gerne in
   Bild laden ändern. Und die Funktion beim anclicken auch gerne
   sofort ausführen.

Vielleich hat jemand eine Antwort parat.

Danke.
Gruß JK

  1. Hallo,

    Nach dem Aufruf(ancklicken) von <input type"file"... ist beim weiteren Gebrauch das Inputfeld immer mit der letzten Auswahl vorbelegt.

    Ich verstehe nicht ganz, was du meinst. Nach dem Absenden des Formulars füllt der Browser das Feld wieder automatisch aus? Erkläre mal bitte den Zusammenhang.

    a) wie kann ich diese Vorbelegung löschen

    Das Ändern des Wertes eines file-Eingabefelds ist aus Sicherheitsgründen nicht möglich.

    b) dieses Inputfeld würde ich überhaupt gerne unterdrücken

    Was meinst du damit? Du kannst das Eingabefeld höchstens per JavaScript auf »disabled« stellen, damit ist es außer Funktion gesetzt. Ein Beispiel:

    <form action="" method="post" enctype="multipart/form-data" name="meinformular" id="meinformular">
    <p><input type="file" name="datei"></p>
    <p><input type="submit" name="submit"></p>
    </form>

    Mit dem Befehl
       document.forms.meinformular.elements.datei.disabled = true;
    lässt sich Datei-Auswahlfeld ausschalten. Es wird in der Regel grau und reagiert nicht mehr auf Mausklicks/Tastatureingaben - die eventuell vorher gewählte Datei wird auch nicht beim Abschicken des Formulars gesendet.
    http://de.selfhtml.org/html/formulare/tastatur.htm#elemente_ausgrauen

    c) Die Beschriftung des Buttons (Durchsuchen) würde ich gerne in Bild laden ändern.

    Das ist m.W. ebenfalls nicht möglich. Die Beschriftung des Buttons hängt allein vom Browser ab und ist nicht veränderbar. Im Forumsarchiv sollten sich zu dieser Frage einige Diskussionen finden: http://suche.de.selfhtml.org.

    Und die Funktion beim anclicken auch gerne sofort ausführen.

    Falls du meinst, dass direkt nach dem Wählen einer Datei über den Durchsuchen-Dialog das Formular automatisch abgesendet werden soll: Ich denke nicht, dass das zuverlässig möglich ist. Manche Browser feuern den onchange-Event, also würde <input type="file" name="datei" onchange="this.form.submit()"> das Formular nach Auswahl einer Datei absenden. Das verhindert natürlich Tastatureingaben sowie das Kontrollieren, ob die ausgewählte Datei die gewünschte ist. Damit nimmst du den Besucher einigen Bedienkomfort.

    Mathias

    1. Hallo,

      Nach dem Aufruf(ancklicken) von <input type"file"... ist beim weiteren Gebrauch das Inputfeld immer mit der letzten Auswahl vorbelegt.

      Ich verstehe nicht ganz, was du meinst. Nach dem Absenden des Formulars füllt der Browser das Feld wieder automatisch aus? Erkläre mal bitte den Zusammenhang.

      wurde der 'Durchsuchen' Button einmal benutzt, so wird bei der zweiten Anwahl in dem PopUp 'Datei auswählen und darin das  Eingabefeld Dateiname: , mit der Auswahl der vorangegangenen Aktion vorbelegt.

      Könnte fast Sinn machen, doch in dieser Vorlage fehlt der Verzeichnispfad, so daß ein cklick auf 'öffnen' zur Fehlermeldung: Datei konnte nicht gefunden werden... führt.

      a) wie kann ich diese Vorbelegung löschen

      Das Ändern des Wertes eines file-Eingabefelds ist aus Sicherheitsgründen nicht möglich.

      habe ich zwischenzeitl. an versch. Stellen nachgelesen. Es wäre allerdings nicht das erstemal, daß etwas geht was aus den verschiedensten Gründen nicht gehen sollte.

      b) dieses Inputfeld würde ich überhaupt gerne unterdrücken

      Was meinst du damit? Du kannst das Eingabefeld höchstens per JavaScript auf »disabled« stellen, damit ist es außer Funktion gesetzt. Ein Beispiel:

      <form action="" method="post" enctype="multipart/form-data" name="meinformular" id="meinformular">
      <p><input type="file" name="datei"></p>
      <p><input type="submit" name="submit"></p>
      </form>

      Mit dem Befehl
         document.forms.meinformular.elements.datei.disabled = true;
      lässt sich Datei-Auswahlfeld ausschalten. Es wird in der Regel grau und reagiert nicht mehr auf Mausklicks/Tastatureingaben - die eventuell vorher gewählte Datei wird auch nicht beim Abschicken des Formulars gesendet.
      http://de.selfhtml.org/html/formulare/tastatur.htm#elemente_ausgrauen

      Nein, grau ist nicht weg. Ich kann es mit visibility:hidden unsichtbar machen, doch dann ist der Button auch weg.
      Ich werde wohl ein blind.gif und dann andere Buttons darüber legen.

      c) Die Beschriftung des Buttons (Durchsuchen) würde ich gerne in Bild laden ändern.

      Das ist m.W. ebenfalls nicht möglich. Die Beschriftung des Buttons hängt allein vom Browser ab und ist nicht veränderbar. Im Forumsarchiv sollten sich zu dieser Frage einige Diskussionen finden: http://suche.de.selfhtml.org.

      Ja scheint so.

      Und die Funktion beim anclicken auch gerne sofort ausführen.

      Falls du meinst, dass direkt nach dem Wählen einer Datei über den Durchsuchen-Dialog das Formular automatisch abgesendet werden soll: Ich denke nicht, dass das zuverlässig möglich ist. Manche Browser feuern den onchange-Event, also würde <input type="file" name="datei" onchange="this.form.submit()"> das Formular nach Auswahl einer Datei absenden. Das verhindert natürlich Tastatureingaben sowie das Kontrollieren, ob die ausgewählte Datei die gewünschte ist. Damit nimmst du den Besucher einigen Bedienkomfort.

      Es geht gerade um den Komfort.
      Letztendlich soll einfach über einen Button 'Bild laden' das Auswahlmenü erscheinen. Wer mag, kann dann noch Miniaturansicht auswählen und bekommt eine Vorschau aller Bilder im Verzeichnis.
      Ein Dblcklick auf ein Bild und es soll ohne weitere 'unnötige Tastendrücke' geladen werden.
      Alles offline, Formulare werden nicht verwendet.

      Ev. gibt es einen anderen Ansatz?
      Gruß JK

      Mathias