[java/VB script] 不用 JavaScript 實現input內容字母自動大寫



[java/VB script] 不用 JavaScript 實現input內容字母自動大寫

不用 JavaScript 實現input內容字母自動大寫
作者:vkvi 來源:千一網絡(原創) 時間:2010-1-26

向input輸入文字時,如何讓小寫字母自動變為大寫呢?很多人想到用 JavaScript,比如:
<input name="t1" type="text" onkeyup="this.value=this.value.toUpperCase()" />

但這並不好,原因有二:

    效果不好,我們會看到:先顯示小寫,再變成大寫;
    如果我用鼠標右鍵的複製、貼上,就無法觸發事件。

有人說,把 onkeyup 改為 onchange 怎麼樣?onchange 更糟,因為 onchange 只有在焦點移開的時候才觸發。

有人又說,那把 onkeyup 改為 onpropertychange 怎麼樣?哎,這東西只有 IE 支持。

正確又簡單的做法是利用 CSS
<input name="t1" type="text" style="text-transform:uppercase;" />

text-transform 有四個可選:

    none            默認值。無轉換發生
    capitalize     將每個單詞的第一個字母轉換成大寫,其餘無轉換發生
    uppercase   轉換成大寫
    lowercase    轉換成小寫