2013-06-21 181 views
0

對於iOS & Android,它們的webkit瀏覽器支持輸入元素上的autocapitalize屬性,以控制句子的第一個單詞是否大寫。Windows Phone 8.在IE10中不支持autocapitalize

在Windows Phone 8 IE10上這不起作用。有誰知道在Windows Phone上實現IE10自動大寫的等效方式嗎?

+0

什麼輸入類型是您使用? – Deeko

+0

我正在使用type =「text」。 –

+0

我相信'autocapitalize'是蘋果專用標籤。你可以試試CSS的'text-transform:capitalize'。移動IE支持。 –

回答

1

如果不支持,那麼你必須通過JavaScript自己完成。假設移動瀏覽器正在觸發關鍵和/或更改事件,您可以簡單地掛鉤這些事件並相應地轉換輸入值。

下面是轉換的第一個字母可以用空格開頭,並且一段時間後的第一個字母后跟空格的例子:

$('[autocapitalize="on"]').on('change keyup', function(event) 
{ 
    var selectionStart = event.target.selectionStart; 
    var selectionEnd = event.target.selectionEnd; 

    var element = $(this); 
    element.val(element.val().replace(/^\s*(.)|\.\s+(.)/g, function(letter) 
    { 
     return letter.toUpperCase(); 
    })); 

    event.target.setSelectionRange(selectionStart, selectionEnd); 
}); 

jsfiddle example

+0

非常感謝那個優雅的解決方案。儘管這種方法存在一些問題。 1)用戶無法在一段時間後強制使用小寫字符(iOS上的自動註冊功能)。 2)這只是一個小小的軟鍵盤,並不表示下一個鍵入的字母會被大寫(通過突出顯示shift鍵)。我仍然可以使用這種方法,因爲它仍然是對用戶的改進,甚至允許列出2個問題。再一次,非常感謝。 –