2013-06-21 141 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个问题。再一次,非常感谢。 –