8

フィールド値を大文字に変換しようとする JavaScript で、Chrome (バージョン 22.0.1229.79) のバグ (先週から) に遭遇しました。同時にフィールド値を大文字に見せている 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 に答える