4

有一个包含许多类似于此的行的用户表单:

<h2>Parts of Body</h2>
<div>
  English: <input name='body_en-1' />
  &nbsp;
  Thai: <input name='body_th-1' />
  &nbsp;
  Description: <input name='body_descr-1' />
  <br/>
  ...
</div>

问题:杀死在两种语言之间来回切换键盘的用户——很多错误,很多抱怨。

有没有INPUT.focus()可以为用户在语言之间切换键盘的方法?

4

2 回答 2

0

直接回答......不,你不能。
您可以做的是,您可以通过将不同的键盘布局映射到英文键盘布局来模拟另一种键盘布局。
例如,您可以将其用于北欧布局:

    <input name="Swedish" type="text" onkeypress="convertToNordic(event, this);" onkeyup="doBackSpace(this);" />
    <script>
function convertToNordic(evt, handle) {
    switch (String.fromCharCode(evt.which || evt.keyCode)){
        case '[' : handle.value += 'å';break;
        case ';' : handle.value += 'ö';break;
        case '\'' : handle.value += 'ä';break;
        default : handle.value += String.fromCharCode(evt.which || evt.keyCode);

    }
}
function doBackSpace(handle){
    handle.value = handle.value.substr(0,handle.value.length-1);

}
    </script>

这是一个JSFiddle

你可以从那里开始工作

于 2012-05-07T04:46:25.350 回答
0

不,您甚至不知道某些特定的键盘布局(例如泰语的某些特定布局)是否可用和可用。在我的电脑上,有四种可用的泰语布局。我从未启用它们中的任何一个,但如果我这样做并使用了布局,那么它的布局可能与您尝试让我使用的布局不同。

用户输入字符可能具有挑战性,但您无法通过尝试设置键盘布局来解决它。如果您可以在 JavaScript 中设置布局(我认为您不能),那么当用户习惯于完全不同的布局时,您可能会严重破坏功能。

在某些情况下,屏幕键盘可以解决部分问题。例如,如果希望用户只输入一两个泰语单词,其余的都是英语,您可以嵌入一个带有泰语字符的虚拟键盘(并可能隐藏它,直到专注于泰语输入的字段)。

从技术上讲,您可以lang在单个元素上设置属性,例如 ,这在原则上是正确的做法,但实际上,它现在几乎没有任何影响。

于 2012-05-07T04:28:34.850 回答