1

私はjavascriptを使用してKeyCodeを変更し、keybourdをペルシア語キーボードに自動変換しています。私のコードを以下に示します

function submitenter(myfield, e) {
    var key;
    if(window.event)
        key = window.event.keyCode;
    else if(e)
        key = e.which;
    var str=' !"#$%،گ)(×+و-./0123456789:ك,=.؟@ِذ}يُيلآةـ،/’د×؛َءٍف‘{ًْإ~جژچ^_پشذزيثبلاهتنمئدخحضقسفعرصطغظ<|>ّ';
    if(key > 31 && key < 128) {
        window.event.keyCode=str.charCodeAt(key-32);
        return true;
    }
    if(key==13 || key==8 || key==0)
        return true;
    return false;
}

<input type=text name="Name" onkeypress="return submitenter(this, event);">

このコードは IE では機能しますが、Firefox と Google Chrome では機能しません

4

1 に答える 1

2

keyCodeMDNドキュメントに従って読み取り専用であり、このプロパティは非推奨であり、代わりに使用することをお勧めします。event.key

JavaScriptでキーボードイベントを起動し、ChromeでKeyboardEventを起動する場合、keyCodeはFirefoxとChromeのカスタムイベントをそれぞれ作成するのに役立ちます。

KeyboardEvent通常のsの作成にはバグがあるため、特にChromeのカスタムイベントの回避策が必要です。

于 2013-03-14T10:30:16.813 に答える