2012-08-07 10 views
5

Mi chiedo quale sia il modo migliore per verificare se il tipo di input = campo "campo" è disponibile per l'utente?Qual è il modo migliore per verificare se l'utente può caricare file?

Almeno iPhone e iPad non consentono all'utente di caricare file, ma piuttosto che controllare l'agente utente con il codice backend mi piacerebbe sentire quale pensi sia la soluzione più minimalista?

Lo scopo è verificare se sono disponibili upoad file, in caso contrario, impostare display: none; per l'intero div contenente la forma.

Questo può essere fatto con solo css? jQuery?

Preferirei una soluzione che non esplicitamente non controlla se (iOS) ma piuttosto un controllo più generico.

Grazie in anticipo!

+0

Se non si concede il mini accesso al disco da opera, convertirà automaticamente i campi di input del caricamento del file in testo. Mi piacerebbe anche conoscere la soluzione. – Prasanth

risposta

12

Il modo più elegante per gestire questo da oggi probabilmente sta usando Modernizr che nella sua ultima versione permette di testare per il supporto di file di input con la seguente dichiarazione JS:

if(Modernizr.fileinput) { 
    //file input available! 
} else { 
    //No file input :(
} 

In alternativa, se non lo fai voler includere Modernizr nel progetto v'è un semplice un modo per testare per esso, che coinvolge solo 3 righe di codice:

var elem = document.createElement('input'); 
elem.type = 'file'; 
return !elem.disabled; 

Come descritto nel this SO answer.

+1

Grande, ma sembra un po 'pesante caricare una libreria completa per una funzione. – jonas

+0

@jonas aggiornato :) – Mahn

+1

[trovato nella documentazione di Modernizr.] (Http://miketaylr.com/code/input-type-attr.html) – Prasanth

Problemi correlati