Как я могу создать кнопку, которая при нажатии имитирует ENTER, как если бы она была физически нажата на клавиатуре.

Другими словами, эта кнопка при нажатии имитирует кнопку ВВОД внутри текстовой области, в которую вводится текст.

Например, после нажатия кнопки

Исходный текст текстовой области:

ХХХ ХХХ ХХХ

Становится

Новый текст текстовой области:

ХХХ ХХХ ХХХ

Новая строка

Все это моделируется нажатием кнопки.

Предположим, текстовая область имеет идентификатор #QR.

Строго javascript, без jquery

0
stylusss 5 Янв 2017 в 10:28
1
Добро пожаловать в SO. Не могли бы вы поделиться тем, что вы пробовали до сих пор?
 – 
Laur Ivan
5 Янв 2017 в 10:30
Скорее всего, это неправильный дубликат. Возможно, вы хотите <button type="button" onclick="document.getElementById("QR").value+='\n';">Enter</button>
 – 
mplungjan
5 Янв 2017 в 10:33
К сожалению, я не знал, с чего начать
 – 
stylusss
5 Янв 2017 в 23:22

2 ответа

Хотя это довольно просто. Все, что вам нужно сделать, это добавить прослушиватель событий на кнопку следующим образом:

HTML-код:

<textarea id="text_area"></textarea>
<button type="button" id="new_line">Click Me!</button>

Код JS

var textarea = document.getElementById("text_area"),
    myBtn    = document.getElementById("new_line");

myBtn.addEventListener("click", function(){
    textarea.value += "\r\n";
    textarea.focus(); // This is optional, if you want the user to go back into the textarea. This will be good then :)

}, false);

Обратите внимание, что я объявил переменные вне функции, так что при каждом нажатии кнопки вам не нужно снова и снова прыгать в DOM, чтобы искать текстовое поле.

Надеюсь, это поможет :-)

1
Zahid Saeed 5 Янв 2017 в 11:46

Html

<textarea id="txtArea"></textarea>
<button type="button" onclick="clickOn()">

Js

<script>
function clickOn() 
{
 document.getElementById("txtArea").value = document.getElementById("txtArea").value + "\n*";
}
</script>
0
L. Vadim 5 Янв 2017 в 10:38
Это здорово в том смысле, что нажатие кнопки добавляет новую строку, но возможно ли имитировать фактическое нажатие кнопки ENTER?
 – 
stylusss
5 Янв 2017 в 23:22
Да, можно вызвать функцию clickOn () из нужного вам места
 – 
L. Vadim
9 Янв 2017 в 17:44