(aggiornato, a causa di incomprensione della questione)
E 'possibile verificare se un file è stato fissato con l'attributo required
.
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; }
Ma non si può mai veramente convalidare, se un file "corretto" è stato selezionato in questo modo. Puoi solo controllare se o se non è stato selezionato alcun file.
// aggiornamento completo:
L'attributo required
è HTML5. Si prega di essere consapevoli del fatto che non tutti i browser supportano questo: http://www.w3schools.com/tags/att_input_required.asp
Ciò significa che l'unico modo di fiducia per cliente validazione lato sta usando javascript. Se si desidera farlo, si consiglia di utilizzare l'attributo novalidate
nel modulo per disabilitare la convalida predefinita del browser (http://www.w3schools.com/tags/att_form_novalidate.asp).
Ma utilizzare sempre la convalida lato server. Non puoi mai assicurarti che l'utente abbia abilitato jaavscript o non abbia manipolato javascript. Quindi il modo migliore è sempre quello di convalidare i valori sul lato che hai il pieno controllo su: il server, cioè la tua azione a cui il modulo invia i suoi dati.
No. Quando si utilizza un input di file, imposta il valore dell'elemento. Non esiste attualmente alcun modo per accertare se un elemento di input abbia un valore o meno in CSS. Vedi http://stackoverflow.com/questions/16952526/detect-if-an-input-has-text-in-it-using-css Se è necessario inserire il file, controlla quelle risposte, vedrai una soluzione su impostazione dell'attributo richiesto. – yts
Grazie. Mi aspettavo questa risposta, ma non ero sicuro. – KZee