2012-10-01 42 views
8

我在Chrome(版本22.0.1229.79)中遇到了一個錯誤(自上週以來),其中有一些javascript試圖將字段值轉換爲大寫字母。它似乎與CSS(文本轉換:大寫)衝突,使字段值看起來大寫在同一時間。
當退出該字段時,onChange事件處理程序將嘗試將字段值更改爲大寫,但結果是該字段變爲空。但是,如果您再次嘗試在該字段中輸入內容,則會重新顯示之前的文本。text-transform:谷歌瀏覽器v.22中的大寫錯誤

有沒有其他人看過相同的東西?我認爲它需要向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);"/> 
+2

尼斯趕上!也許如果你報告它可以從谷歌獲得一些錢:http://blog.chromium.org/2010/01/encouraging-more-chromium-security.html –

+0

@Perroloco這裏的安全問題在哪裏?你最好把OP指向bug報告站點:http://new.crbug.com/ –

+0

很奇怪;如果您在「清除」後重新輸入字段,則返回值 –

回答

3

對於任何人究竟是誰擁有這個問題,我發現,您可以通過重置價值爲空白,然後做一個變通方法回到原始值,但大寫。

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

請參閱更新的小提琴:http://jsfiddle.net/JXA8K/2/

+0

浪費資源,只需將您的CSS規則綁定到