2016-10-19 3 views
1

Я пытаюсь создать простой скрипт. Когда пользователь нажимает определенный ключ, символ добавляется к значению текстового поля. Например (это не мой случай), скажем, пользователь нажимает клавиши Alt + Enter. Когда они это сделают, я хотел бы добавить символ в уже существующий текст в текстовое поле.Как добавить символ в 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

"есть ли способ удалить нажатую клавишу?" Да, тогда textare работает обычным способом. «если вы измените код ключа на« 65 »(a) и введите текстовое поле, оно сначала наберет« A », затем« 123. », Я не понимаю. –

+0

Итак, скажем, мое нажатие клавиши «65», которое является буквой «а». Когда я выбираю textarea и нажимаю «a», он вводит «a», а затем «123». Как мне избавиться от «а», который был введен в текстовое поле? Другими словами, как удалить «a» из значения textarea? –

1

Вы можете просто добавить текст в значение текстового поля.

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

Hi- это отлично работает, спасибо. Однако, когда я изменил код ключа на письмо (я использовал 65: a), я столкнулся с проблемой. Сначала он набирает «a», а затем добавленную стоимость. В любом случае, чтобы ** не ** набирать клавишу нажатой? –

+0

@Dave_Williams Добро пожаловать! Вы можете использовать 'e.preventDefault()' в конце своей функции, чтобы предотвратить регулярное поведение ввода. –