2011-12-05 8 views
15

Tengo un elemento <select> dentro del cual me gustaría Capitalizar el texto que se muestra en cada etiqueta <option>.¿Transforma el texto: capitaliza el trabajo para los elementos <option> y, en caso afirmativo, en qué navegadores?

Por ejemplo, me gustaría que los 2 valores aquí para ser Bar y Baz (no barra y Baz)

<style> 
    option { text-transform: Capitalize; } 
</style> 

<select name="foo"> 
    <option value="bar">bar</option> 
    <option value="baz">baz</option> 
</select> 

Esto no parece funcionar en mi Chrome (14.0.835.202) pero funciona en mi Firefox (8.0) e IE 8.

Editar: Añadido <style> etiqueta para mayor claridad

+1

El título de tu pregunta menciones "en texto transformar: mayúscula ", pero el texto de la pregunta no muestra cómo lo está usando. Simplemente 'seleccione la opción {text-transform: capitalize; } '? – ruakh

+0

Aparentemente, se trataba de un error continuo de Chrome y se corrigió en 16 + 17, pero no puedo verificarlo porque todavía estoy en 15: http://code.google.com/p/chromium/issues/detail? id = 31349 – Tarwn

+0

Funciona si estilo 'seleccionar' ahora en Chrome. –

Respuesta

18

Como han mencionado otros, actualmente a bug in Chrome. El código siguiente es la forma correcta de hacer lo que estás preguntando:

select option {text-transform:capitalize} 

Aquí está a working fiddle to demonstrate (vista en algo que no sea Chrome)

Información adicional:

creo que estará También descubres que el método anterior tampoco funciona en Safari. Si desea una solución entre navegadores, JavaScript será su única opción.

Si usted está abierto a él, aquí hay un ejemplo simple de jQuery:

$("option").each(function() { 
    $(this).text($(this).text().charAt(0).toUpperCase() + $(this).text().slice(1)); 
}); 

Y a working fiddle.

+2

Funciona si estilo 'seleccionar' ahora en Chrome. –

1

Se puede usar un pequeño script jQuery para que funcione en Chrome también:

http://jsfiddle.net/p6wbf/1/

+0

Funciona si estilo 'seleccionar' ahora en Chrome. –

15

Esto funciona en todos los navegadores:

select {text-transform:capitalize} 
+1

¡Esta es una buena pareja! +1 ':)' –

+0

Este es mejor, simple y directo. – Imran

+0

¿Cómo se puede simplemente escribir en mayúscula la primera palabra crossbrowser si hay más de uno en cada opción? – Hans

Cuestiones relacionadas