Se metto un controllo <input type="range">
su un modulo, alcuni browser renderanno (correttamente) il controllo di un cursore e altri non sapranno cosa sia range
e renderanno una casella di testo. La gestione di questo caso richiederebbe una convalida aggiuntiva, in quanto una casella di testo può contenere qualsiasi testo arbitrario. C'è qualche JavaScript che posso inserire nella pagina per dire "guarda questo controllo nel DOM, e se si tratta di un controllo da casella di testo, fai foo()
"?Come rilevare se un controllo di input HTML5 è supportato?
risposta
Questo site recommends using Modernizer:
Controllo per i tipi di ingresso HTML5 utilizza il rilevamento tecnica # 4. Innanzitutto, crei un elemento fittizio <input>
nella memoria. Il tipo di input predefinito per tutti gli elementi <input>
è "testo". Questo si rivelerà di vitale importanza.
var i = document.createElement("input");
Successivamente, impostare l'attributo type sull'elemento dummy sul tipo di input che si desidera rilevare.
i.setAttribute("type", "color");
Se il browser supporta quel particolare tipo di input, la proprietà type manterrà il valore impostato. Se il tuo browser non supporta quel particolare tipo di input, ignorerà il valore impostato e la proprietà type sarà ancora "text".
return i.type !== "text";
invece di scrivere 13 funzioni separate da soli, è possibile utilizzare Modernizr per rilevare il supporto per tutti i nuovi tipi di input definiti in HTML5. Modernizr riutilizza un singolo elemento <input>
per rilevare in modo efficiente il supporto per tutti i 13 tipi di input. Quindi crea un hash chiamato Modernizr.inputtypes
, che contiene 13 chiavi (gli attributi di tipo HTML5) e 13 valori booleani (true se supportato, false se non).
//check for native date picker
if (!Modernizr.inputtypes.date) {
// no native support for <input type="date"> :(
// maybe build one yourself with Dojo or jQueryUI
}
Controlla HTML 5 shim ... anche con il nome errato HTML 5 shiv. – ErikE
- 1. Come verificare, se è supportato un input HTML5?
- 2. Come sapere se il colore del tipo di input HTML5 è disponibile come selettore di colori?
- 3. Rilevare se IME (Input Method Editor) è attivo in Silverlight
- 4. OSX: come rilevare se il controllo missione è in esecuzione?
- 5. Come determinare se il multitasking è supportato su un dispositivo?
- 6. Come verificare se un framework è BITCODE supportato per Xcode7
- 7. Come rilevare se è presente un microfono
- 8. HTML5 data input width
- 9. Javascript - rileva se il listener di eventi è supportato
- 10. Come verificare se è supportato un protocollo personalizzato
- 11. Intervallo HTML5 - pseudo non supportato: intervallo
- 12. Utilizzando jQuery, come scoprire se il selettore CSS "input [type = text]" è supportato nativamente dal browser?
- 13. La casella di controllo HTML5 corretta è
- 14. rilevare se un oggetto è vuoto
- 15. Intervallo di input "time" HTML5
- 16. Come rilevare se un microfono è presente in Android?
- 17. PHP: Come posso rilevare se una stringa di input è araba
- 18. Come rilevare se il flusso di input è vuoto (ma non EOF)?
- 19. Come verificare se il browser supporta HTML5?
- 20. come rilevare se la modalità di azione è già presente
- 21. Rilevare se NSString è un numero float
- 22. Rilevare se un elemento è realmente visibile
- 23. Come rilevare se un dato numero è un numero intero?
- 24. HTML5 input versus button
- 25. Qual è il modo più semplice per determinare se `<input type =" email "..` (per esempio) è supportato nel browser corrente?
- 26. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 27. Come rilevare se è supportata un'interfaccia grafica?
- 28. Come rilevare se $ _POST è impostato?
- 29. Come rilevare se RecyclerView è vuoto?
- 30. Come rilevare se SearchView è espanso?
possibile duplicato di [Come verificare, se è supportato un ingresso HTML5?] (Http://stackoverflow.com/questions/8278670/how-to-check-if-a-html5-input-is -supported) – Mathletics