2012-10-01 13 views
8

He encontrado un error (desde la semana pasada) en Chrome (Versión 22.0.1229.79) con algunos javascript que intenta convertir un valor de campo en mayúscula. Parece estar en conflicto con CSS (text-transform: mayúsculas) que está haciendo que el valor de campo parezca en mayúscula al mismo tiempo.
Al desplazarse fuera del campo, el controlador de eventos onChange intentará cambiar el valor del campo a mayúsculas, pero el resultado es que el campo queda vacío. Pero si intenta escribir nuevamente en el campo, reaparecerá su texto anterior.text-transform: error mayúsculo en Google Chrome v.22

¿Alguien más ha visto lo mismo? Creo que necesita informar a Google.

Aquí es un caso de prueba para ella ... http://jsfiddle.net/fhBx2/2/

<script> 
function upperKey(obj) 
{ 
    var val = obj.value; 
    if(val != null) 
    { 
     obj.value = val.toUpperCase(); 
    }  
} 
</script> 

<input type="text" style="text-transform:uppercase;" 
onchange="upperKey(this);"/> 
+2

Buena atrapada! tal vez si lo reporta, podría obtener algo de dinero de google: http://blog.chromium.org/2010/01/encouraging-more-chromium-security.html –

+0

@Perroloco ¿Dónde está el problema de seguridad aquí? Será mejor que apunte el OP al sitio de notificación de errores: http://new.crbug.com/ –

+0

extraño; el valor vuelve si continúa escribiendo en el campo después de haber sido "borrado" –

Respuesta

3

Para cualquier persona que en realidad tiene un problema con esto, he encontrado que se puede hacer una solución al restablecer el valor de blanco y luego de vuelta al valor original, pero en mayúscula.

$(function() { 
    $('input').change(function(e) { 
     var val = $(this).val().toUpperCase(); 
     $(this).val('').val(val); 
    }); 
});​ 

Ver el violín actualización: http://jsfiddle.net/JXA8K/2/

+0

desperdicio de recursos, solo ate su regla CSS a