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>

問題:2つの言語間でキーボードを切り替えているユーザーを殺す-多くの間違い、多くの不満。

とにかくINPUT.focus()、ユーザーの言語間でキーボードを切り替えることができるものはありますか?

4

2 に答える 2

0

いいえ。特定のキーボードレイアウト(タイ語の特定のレイアウトなど)が利用可能で使用可能かどうかさえわかりません。私のコンピューターでは、タイ語で利用できる4つのレイアウトがあります。私はそれらのいずれも有効にしたことはありませんが、それを実行してレイアウトを使用した場合、あなたが私に使用させようとするものとは異なるレイアウトになる可能性があります。

ユーザーによる文字の入力は難しい場合がありますが、キーボードレイアウトを設定しようとして修正することはできません。JavaScriptでレイアウトを設定できれば(できないと思います)、ユーザーがまったく異なるレイアウトに慣れていると、機能が大幅に損なわれる可能性があります。

場合によっては、オンスクリーンキーボードで問題の一部を解決できることがあります。たとえば、ユーザーがタイ語で1、2語だけ入力し、残りはすべて英語で入力することが予想される場合は、タイ語の文字を使用して仮想キーボードを埋め込むことができます(また、タイ語入力のフィールドに焦点が当てられるまで非表示にすることもできます)。

技術的には、のように個々の要素に属性を設定できます。langこれは原則として正しいことですが、実際には、現在はほとんど影響がありません。

于 2012-05-07T04:28:34.850 に答える
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 に答える