2010-10-04 37 views

回答

64

我會爲此使用CSS。

只需將text-transform: uppercase添加到您的樣式中,然後在服務器端就可以將其轉換爲大寫。

input { 
    text-transform: uppercase; 
} 
+3

如果您願意,可以用jQuery以編程方式添加類或此樣式,但這可能是您需要的。 – 2010-10-04 19:42:17

+0

有趣的做法 – mcgrailm 2010-10-04 19:42:34

+0

+ 1,不錯,我也在想各種jquery/js解決方案,但是這個更好, – Michel 2010-10-04 20:16:34

13
$('input[type=text]').keyup(function() { 
    $(this).val($(this).val().toUpperCase()); 
}); 
+0

-1失去焦點後,只有變化,而不是當你鍵入。 http://jsfiddle.net/XJKgs/ – Greg 2010-10-04 20:22:57

+0

有效的點,應該結合Brandon的解決方案來正確地改變它的客戶端。稍微更改了代碼以在按鍵上更新。 – Gazler 2010-10-04 20:34:00

+6

我刪除了我的downvote,因爲它現在完成了OP要求的操作。但如果我是一個網站的用戶,做了這個「keyup」改變,**我會追捕負責人**。當你輸入字母時,看到字母會變得迷茫,並且試圖回去編輯你輸入的內容令人沮喪,因爲光標一直移動到最後。 http://jsfiddle.net/HPapz/1/ – Greg 2010-10-04 20:37:52

1

您可能需要使用這些組合。

使用文本轉換樣式只會呈現大寫的類型,儘管值可能是小寫。

的JavaScript只會更改當前文本上一次場的變化或丟失焦點

可以使用gazler的jQuery的或乾脆聯JavaScript

例如的onblur = '的javascript:THIS.VALUE = this.value.toUpperCase();'

這意味着當值更改/控件失去焦點時,文本值將顯示爲大寫,實際上爲大寫。

HTH 山姆

+0

我可以使用onKeyUp – randomizertech 2010-10-04 20:55:18

+0

onblur的一個問題是,如果用戶只是按回車鍵,說提交表單,文本將不會大寫。 – Joseph 2013-10-22 21:09:09

5

使用
oninput='this.value=this.value.toUpperCase();
這個事件僅僅是這種情況下,用戶輸入(按下鍵)後更新(顯示值),而在此之前被激發,故有此鍵入的文本不會閃爍而轉換時,值也是正確的(不像只使用樣式來改變顯示而不改變實際數據)。

0

要建立在@ Gazler的回答,增強解決方案,更好地把手修飾鍵(假設你有一個大小寫混合的佔位符,並且不能設置text-transform: uppercase;):

$('.search-input input[type=text]').keyup(function() { 
    var v = $(this).val(); 
    var u = v.toUpperCase(); 
    if(v != u) $(this).val(u); 
}) 
相關問題