【问题标题】:Windows Phone 8. autocapitalize not supported in IE10Windows Phone 8. IE10 不支持自动大写
【发布时间】:2013-06-18 16:30:42
【问题描述】:

对于 iOS 和 Android,他们的 webkit 浏览器支持输入元素上的 autocapitalize 属性来控制句子的第一个单词是否大写。

在 Windows Phone 8 IE10 上这不起作用。有谁知道在 Windows Phone 上的 IE10 中实现自动大写的等效方法?

【问题讨论】:

  • 您使用的是什么输入类型?
  • 我正在使用 type="text"。
  • 我相信 autocapitalize 是 Apple 特定的标签。你可以试试 CSS 的text-transform: capitalize。移动 IE 支持。
  • AFAIK autocapitalize 只将句子的第一个单词大写?使用text-transform会使所有单词都大写,也只是视觉效果,实际值还是小写。

标签: windows-phone-8 windows-phone internet-explorer-10


【解决方案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

【讨论】:

  • 非常感谢您提供的优雅解决方案。但是,这种方法存在一些问题。 1) 用户无法在一段时间后强制使用小写字符(在 iOS 上自动大写)。 2)这只是一个次要的,但软键盘并不表示下一个键入的字母将大写(通过突出显示 shift 键)。不过,我可能仍然使用这种方法,因为它对用户来说仍然是一种改进,即使考虑到列出的 2 个问题。再次,非常感谢。
猜你喜欢
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
相关资源
最近更新 更多