2011-11-26 5 views

Respuesta

22

Con los campos del formulario que puede utilizar esto:

var i = document.createElement("input"); 
i.setAttribute("type", "color"); 
return i.type !== "text"; 

Si se admite el color, i.type habrá color, pero si no es compatible, el navegador devuelve el texto como predeterminado. Así que una verificación simple como esta puede ayudarte.

13

Modernizr tiene soporte para verificar los nuevos tipos de entrada.

+1

+1 por mencionar el método más fácil –

1

Se podría hacer:

 
function IsAttributeSupported(tagName, attrName) { 
    var val = false; 
    // Create element 
    var input = document.createElement(tagName); 
    // Check if attribute (attrName) 
    // attribute exists 
    if (attrName in input) { 
     val = true; 
    } 
    // Delete "input" variable to 
    // clear up its resources 
    delete input; 
    // Return detected value 
    return val; 
} 

if (!IsAttributeSupported("input", "placeholder")) { 
    // Do something special here 
    alert("placeholder attribute is not supported"); 
} 

creo que sirve

+4

+1 pero 'borrar entrada' no tiene ningún efecto. Solo puede usar 'delete' para eliminar propiedades en un objeto. – pimvdb

+1

No responde la pregunta, que es si se admite un tipo de entrada específico 'type', no algún atributo como' placeholder'. – Rahul

0

comentaría sobre la respuesta aceptada, pero no me permitirá sin una cierta reputación, así que lo haré de esta manera. si un navegador se encuentra con un tipo de entrada que no reconoce, automáticamente se convertirá automáticamente en una entrada de 'texto'. entonces yo diría que el JS en la respuesta es innecesario (a menos que prefiera algo diferente a 'texto')

Cuestiones relacionadas