2016-10-19 14 views
1

私は簡単なスクリプトを作ろうとしています。ユーザーが特定のキーを押すと、文字領域の値に文字が追加されます。例えば(これは私の場合ではない)、ユーザーがAlt + Enterキーを押したとします。彼らがそうするとき、私はテキストフィールドの既存のテキストに文字を追加したいと思います。keypressでtextAreaに文字を追加するには?

だから、私のコードは次のようになります。

function doc_keyUp(e) { 
if (e.altKey && e.keyCode == 13) { 

*insert character into textarea* 

    } 
} 
document.addEventListener('keyup', doc_keyUp, false); 

コード自体がしかし微動作しますが、私は文字を挿入する方法について不明な点です。どんな助けもありがとう!

私はウクライナのための簡単な表音キーボードを作成しようとしています。あなたは英語の文字を入力することができ、ウクライナの対応が表示されます。私が言っていることをよりよく理解するために、http://ua.translit.ccを見てください。

+0

類似したhttp://stackoverflow.com/questions/1642447/how-to-change-the-content-of-a-textarea-with-javascript – GramThanos

答えて

1

function doc_keyUp(e) { 
 
if (e.altKey && e.keyCode == 13 || e.keyCode == 65) { 
 
    document.getElementById("area").value += "123"; 
 
    } 
 
} 
 

 
function validateKey(e){ 
 
    // here can be whatever keys 
 
    if (e.keyCode >= 65 && e.keyCode <= 90 || e.keyCode >= 97 && e.keyCode <= 122) return false; 
 
} 
 

 
document.addEventListener('keyup', doc_keyUp, false);
<textarea id="area" onKeyPress="return validateKey(event)">ABC</textarea>

+0

ありがとう!魅力のように動作します。しかし、押されたキーを削除する方法はありますか? (私はその考えをうまく表現しなかった、申し訳ありません)。たとえば、キーコードを '65'(a)に変更してテキストエリアに入力すると、最初にA型、次に123型が入力されます。これを変更する方法はありますか? –

+0

"押されたキーを削除する方法はありますか?"はい、テキストは通常​​の方法で動作します。 "キーコードを '65'(a)に変更してテキストエリアに入力すると、最初にAを入力してから123を入力します。わかりません。 –

+0

私のキー押下が「65」で、これは文字「a」です。テキストエリアを選択して "a"を押すと、 "a"、次に "123"が入力されます。テキストエリアに入力された "a"を取り除くにはどうすればよいですか?言い換えれば、 "a"をテキストエリアの値から削除するにはどうすればよいですか? –

1

テキストエリアの値にテキストを追加することができます。テキストエリアのエントリにいくつかのキーを検証するために更新

function doc_keyUp(e) { 
    if (e.altKey && e.keyCode == 13) { 
     textarea.text += value 
    } 
} 
document.addEventListener('keyup', doc_keyUp, false); 
+0

こんにちは、これは完璧に、ありがとうございます。しかし、キーコードを文字(私は65:aを使用)に変更したときに問題が発生しました。最初に "a"を入力し、次に追加された値を入力します。とにかくキーが押された**タイプではないですか? –

+0

@Dave_Williamsよろしくお願いします!関数の最後に 'e.preventDefault()'を使用すると、通常のタイピング動作を防ぐことができます。 –

関連する問題