8

我在 Chrome(版本 22.0.1229.79)中遇到了一个错误(从上周开始),其中包含一些试图将字段值转换为大写的 javascript。它似乎与使字段值同时看起来大写的 CSS (text-transform:uppercase) 冲突。
当跳出该字段时,onChange 事件处理程序将尝试将字段值更改为大写,但结果是该字段变为空。但是,如果您再次尝试在该字段中输入,您之前的文本会再次出现。

有没有其他人看到过同样的事情?我认为它需要向 Google 报告。

这是一个测试用例...... 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);"/>
4

1 回答 1

3

对于实际上对此有疑问的任何人,我发现您可以通过将值重置为空白然后恢复为原始值(但大写)来解决问题。

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

查看更新的小提琴:http: //jsfiddle.net/JXA8K/2/

于 2012-10-01T23:50:04.710 回答