Überprüfung des Datei-Uploads - Jquery und "Accept" -Attribut

7

Ich verwende ein Formular, um eine Datei hochzuladen. Ich möchte nur PDF-Dateien hochladen. Das ist mein Code:

Ein Eingabefeld, in dem der Benutzer eine Datei auswählen kann:

%Vor%

und ein Ort, an dem Fehlermeldung (en) angezeigt werden:

%Vor%

Der für das Eingabefeld generierte Code lautet:

%Vor%

Nun, selbst wenn ich eine PDF-Datei wähle, erhalte ich einen Fehler Please enter a value with a valid extension.

Ich verwende MVC 3 und unaufdringliche jquery, um das Formular zu validieren.

    
escist 08.05.2012, 10:36
quelle

4 Antworten

7

Die "accept" -Regelmethode, die in jQuery Validation integriert ist, verwendet Werte in einem Format, das "jpg | png" ähnelt.

Das HTML-Attribut "accept" hat ein Format, das "image / jpeg, image / png" ähnelt.

Es scheint, dass jQuery Validation und der HTML-Standard in dieser Hinsicht inkompatibel sind.

Hier erfahren Sie mehr über die jQuery Validation-Regel "accept" und die HTML5" accept "Attribut .

    
Bryan 23.10.2012, 21:38
quelle
10

Ich hatte das gleiche Problem und musste die Validierung für das accept-Attribut vollständig deaktivieren. Ich fügte meiner Seite die folgende Zeile hinzu und es funktionierte:

  

$. validator.addMethod ('accept', function () {return true;});

    
Emanuel 27.06.2012 17:35
quelle
7

Sie haben das Verhalten der Methode "accept" mit der Version 1.10.0 geändert. Anstatt die Dateiendung zu prüfen, wird nun der MIME-Typ betrachtet. Das alte Verhalten ist jetzt als "Extension" -Methode verfügbar. Sie müssen also nur Ihre Version des jquery Validierungs-Plugins aktualisieren und Sie sind fertig. Ich habe meine aktuelle Version 1.9.0 durch 1.11.0 ersetzt und gültige MIME-Typen als accept-attribut gesetzt. Es funktioniert jetzt wie erwartet:

%Vor%     
Philipp Michael 25.02.2013 17:21
quelle
5

Wenn Sie beide Formate als accept-Attribut angeben, sollte es funktionieren

%Vor%     
Gordo 05.02.2013 16:57
quelle