Wie kann ich das Dateieingabefeld im IE deaktivieren?

8

Ist es möglich, zu verhindern, dass ein Benutzer ein Dateieingabe-Textfeld in IE eingibt? Der Grund, warum ich frage ist, dass, wenn ein Benutzer Text eingibt, der nicht wie ein Dateisystempfad aussieht (zB startet nicht mit etwas wie c: ...), dann wird nichts passieren, wenn der Benutzer auf den Submit-Button klickt. p>

Ich möchte entweder nicht zulassen, dass der Benutzer die Box eingibt oder das Formular wie üblich einreichen lässt.

Ich habe festgestellt, dass die gleiche Frage hier ohne Antwort gestellt wurde: Ссылка

Und diese Person hat einen Hack gefunden, den ich benutzen kann, wenn es keine andere passende Antwort gibt: Ссылка

BEARBEITEN: Zur Klärung - wenn der Benutzer "nicht einen Dateipfad" in das Textfeld neben der Schaltfläche "Durchsuchen" eingibt und auf "Senden" klickt, wird im IE nichts passieren. Das Formular wird nicht gesendet - IE erlaubt kein Formular, wenn ein & lt; Eingabetyp="Datei" & gt; Box hat keinen echten Dateipfad.

    
Matt McCormick 26.02.2009, 18:01
quelle

9 Antworten

2

Ich habe dies auf eine andere Weise gelöst, indem ich eine Schaltfläche anstelle einer Submit-Methode verwendet habe und JavaScript verwendet habe, um den Wert vor dem Senden zu überprüfen.

%Vor%

Mir ist klar, dass es noch eine serverseitige Validierung für die Datei geben muss, aber dies soll nur verhindern, dass ein Benutzer auf die Schaltfläche "Senden" klickt und nichts passiert. Außerdem wird IE unter Verwendung eines Windows-Betriebssystems angenommen.

    
Matt McCormick 26.02.2009, 21:38
quelle
7

Wie wäre es mit diesem? Sie können nicht tippen oder mit der rechten Maustaste klicken und einfügen.

%Vor%     
rnielsen 09.04.2009 04:15
quelle
2

Das ist vielleicht eine schlechte Idee, um damit anzufangen. Was ist, wenn der Benutzer kein Windows-Betriebssystem verwendet und die Datei /home/user/example.txt hochladen möchte?

Diese Art der Überprüfung ist möglicherweise serverseitig besser implementiert.

    
Ben S 26.02.2009 18:09
quelle
1

Ein Weg ist es, ein wenig Javascript-Code in die Schaltflächen onsubmit zu setzen. Die Idee ist, die Box zu validieren und entweder die Einreichung zu stoppen oder zu erlauben.

Allerdings ist es wahrscheinlich besser, wenn Sie nur den Dateiinhaltsserver überprüfen und den entsprechenden Fehler an den Client zurückgeben.

    
NotMe 26.02.2009 18:04
quelle
1

Der Eingabetyp = Die Werteigenschaft des Dateielements wird wie beim Sicherheitsproblem gelesen. Sie können diese Eigenschaft lesen und eine Überprüfung durchführen. Wenn es nicht Ihren Regeln entspricht, geben Sie eine Warnung und lassen die Person es ändern. Die andere Möglichkeit, die outerHTML-Eigenschaft zu verwenden, überschreibt sie. beispielsweise: HTML-Eingabedateielement namens objInputFileElement. objInputFileElement.outerHTML="";

    
yuxiaoxu 09.03.2011 03:29
quelle
0

Konnten Sie nicht

verwenden? %Vor%

BEARBEITEN : nein, das verhindert auch die Übergabe ... aber in HTML 4 anscheinend

%Vor%

sollte funktionieren. Ссылка

    
David Z 26.02.2009 18:04
quelle
0

Ich habe die Option gefunden, die Ihr Problem löst. Ist die Option contentEditable wie folgt:

%Vor%     
Antreas 10.04.2012 16:02
quelle
0

Hier ist eine Demonstration der Option contentEditable :

%Vor%     
Antreas 10.04.2012 16:22
quelle
0

Ich habe meine Lösung auf diesem Thema .

Also, in Anbetracht dieses Dateifeldes:

%Vor%

Ich habe es mit so etwas in jquery arbeiten lassen:

%Vor%

HINWEIS: Sie müssen keydown anstelle von drücken verwenden, da dieser Bereich abgedeckt ist DEL und RÜCKTASTE sowie irgendein Druckschlüssel.

    
Dentra Andres 17.02.2015 18:04
quelle