2015-08-17 10 views
7

Es ist keine JS Frage, nur auf der Suche nach einer klaren CSS-Lösung, wenn es möglich ist.input [type = "file"] check Existenz von Dateianhang mit css

Für einen Radiobutton oder eine Checkbox wir die :checked Pseudo-Klasse verwenden können:

input{ 
    % styles % 
} 
input:checked{ 
    % another styles % 
} 

Gibt es Tricks zum Prüfen, ob ein Dateianhang mit CSS existiert?

+11

Nein. Bei Verwendung einer Dateieingabe wird der Wert des Elements festgelegt. Es gibt derzeit keine Möglichkeit festzustellen, ob ein Eingabeelement in CSS einen Wert hat oder nicht. Siehe http://stackoverflow.com/questions/16952526/detect-if-an-input-has-text-in-it-using-css Wenn die Dateieingabe erforderlich ist, überprüfen Sie diese Antworten. Sie werden eine Lösung finden Festlegen des erforderlichen Attributs – yts

+0

Danke. Ich habe diese Antwort erwartet, aber ich war mir nicht sicher. – KZee

Antwort

3

(aktualisiert, aufgrund der Frage Missverständnis)

Es ist möglich, wenn eine Datei required mit dem Attribut angebracht wurde zu überprüfen.

See: http://jsfiddle.net/1ua59jt1/1/

HTML:

<input id="file" type="file" name="fileselect" required="required" /> 

CSS:

#file:valid { color: green; } 
#file:invalid { color: red; } 

Aber man kann nie wirklich bestätigen, wenn eine "richtige" Datei wurde auf diese Weise ausgewählt. Sie können nur prüfen, ob oder überhaupt eine Datei ausgewählt wurde.


// Abschluss Update:

Das required Attribut ist HTML5. Bitte beachten Sie, dass nicht alle Browser dies unterstützen:

Das bedeutet, die einzige vertrauenswürdige Möglichkeit für Client-Seite Validierung verwendet JavaScript. Wenn Sie dies tun möchten, empfehle ich, das Attribut novalidate in Ihrem Formular zu verwenden, um die Standardvalidierung des Browsers zu deaktivieren (http://www.w3schools.com/tags/att_form_novalidate.asp).

Aber immer serverseitige Validierung auch verwenden. Sie können niemals sicherstellen, dass der Benutzer Jaavscript aktiviert oder Javascript nicht manipuliert hat. Der beste Weg besteht also immer darin, Werte auf der Seite zu validieren, über die Sie die volle Kontrolle haben: den Server, d. H. Ihre Aktion, an die das Formular seine Daten sendet.

+0

Nochmal: "Es ist keine JS Frage, nur nach einer klaren CSS-Lösung suchen, wenn es möglich ist." Und die vollständige und korrekte Antwort wurde im ersten Kommentar gegeben. – KZee

+0

Ich habe gelesen, dass Sie überprüfen möchten, ob eine _valid_ Datei ausgewählt wurde. Wenn Sie nur über CSS bestimmen wollen, ob oder wenn überhaupt keine Datei ausgewählt wurde, können Sie dafür das Attribut 'required' verwenden. Ich habe meine Antwort aktualisiert. Entschuldigen Sie das Missverständnis. – Seika85

+0

Schöne Idee! Es ist keine universelle Lösung, weil das erforderliche Attribut nicht immer möglich ist, aber manchmal nützlich sein kann. – KZee

Verwandte Themen