2015-08-17 12 views
7

Non è una domanda JS, cerca solo una soluzione css chiara se è possibile.input [type = "file"] verifica l'esistenza del file allegato con css

Per un pulsante di scelta o una casella di controllo che possiamo utilizzare la classe :checked pseudo:

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

ci sono trucchi per verificare se un allegato file esiste con i CSS?

+11

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

+0

Grazie. Mi aspettavo questa risposta, ma non ero sicuro. – KZee

risposta

3

(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.

+0

Ancora una volta: "Non è una domanda JS, è solo alla ricerca di una soluzione css chiara se è possibile." E la risposta completa e corretta è stata data nel primo commento. – KZee

+0

I tipo di lettura, che si desidera controllare se è stato selezionato un file _valid_. Se si desidera determinare tramite CSS se o se non è stato selezionato alcun file, è possibile utilizzare l'attributo 'required'for that that. Ho aggiornato la mia risposta. Scusa per il fraintendimento. – Seika85

+0

Bella idea! Non è una soluzione universale perché l'attributo obbligatorio non è sempre possibile, ma a volte può essere utile. – KZee

Problemi correlati