Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как добавить текст в текстовое поле и нажать энтер джаваскриптом? (https://javascript.ru/forum/misc/70818-kak-dobavit-tekst-v-tekstovoe-pole-i-nazhat-ehnter-dzhavaskriptom.html)

денис77447327 04.10.2017 18:30

как добавить текст в текстовое поле и нажать энтер джаваскриптом?
 
как добавить текст в текстовое поле и нажать энтер джаваскриптом?
<textarea aria-label="Добавьте комментарий..." class="_bilrf" placeholder="Добавьте комментарий..." style="height: 18px;">cc</textarea>

Rasy 04.10.2017 20:49

денис77447327,
Возможно достаточно поместить textarea в форму и сабмитить ее по клику?

денис77447327 04.10.2017 21:31

а конкретнее? я что то не пойму

ruslan_mart 04.10.2017 21:49

var field = document.querySelector('textarea._bilrf');
field.value = 'Bla bla bla';
field.form.submit();

денис77447327 04.10.2017 22:47

не работает
он обновляет страницу
текст появляется в текстарреа но после field.form.submit(); идет не отрпавка его а обновление

MadChildNSK 11.04.2018 04:24

Цитата:

Сообщение от денис77447327 (Сообщение 466554)
как добавить текст в текстовое поле и нажать энтер джаваскриптом?
<textarea aria-label="Добавьте комментарий..." class="_bilrf" placeholder="Добавьте комментарий..." style="height: 18px;">cc</textarea>

Подниму тему. Получилось? Как реализовали?

Dilettante_Pro 11.04.2018 10:32

MadChildNSK,
Цитата:

Сообщение от MadChildNSK
как добавить текст в текстовое поле и нажать энтер джаваскриптом?

А зачем? Цель нажатия?

j0hnik 11.04.2018 10:51

MadChildNSK,
программное нажатие может не оправдать ваши ожидания.

денис77447327 23.04.2018 01:22

нет кнопки отправить текст отправляется по нажатию энтер

Malleys 23.04.2018 19:33

О форме с единственным textarea

В многострочном textarea использование в качестве сигнала отправки формы копки Enter⏎ не позволяет использовать этот самый многострочный ввод... Обычно для этой цели на настольном компьютере с клавиатурой или ноутбуке используют Cmd+Enter, но тогда пользователи сенсорных устройств не смогут отправить такую форму.

Т. е. *дополнительная* кнопка для отправки нужна, поскольку тогда пользователи знают, какое они совершат действие с введённым текстом. (По крайней мере у них не сложится впечатление, что достаточно ввести текст...)

Также пользователи, которые привыкли к удобному заполнению форм, введя текст, смогут нажать Tab⭾ и сфокусировавшись на кнопке, нажать на Enter⏎

Пользователи сенсорных устройств всё-таки смогут отправить форму, нажав на кнопку.

Ну и пример. Форма с единственным textarea.
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Пример формы с многострочным вводом</title>
	<meta name="viewport" content="width=device-width">
	<style>
		button, form, textarea {
			color: deepskyblue;
			border: 1px solid;
			background: transparent;
			border-radius: 1em;
			padding: 0;
			font: inherit;
			display: inline-block;
			box-sizing: border-box;
			padding: .5em 1em;
			outline: 0;
		}
		
		button:focus, form:focus, textarea:focus {
			box-shadow: 0 0 0 .1em, 0 0 1em;
		}
		
		form {
			position: relative;
			min-width: 100%;
			padding: 0;
		}
		
		button {
			position: absolute;
			bottom: .5em; right: .5em;
		}
		
		textarea {
			width: 100%; height: 100%;
			display: block;
			border: none;
			min-height: 8em;
			resize: vertical;
		}
	</style>
</head>
<body>
	<form onsubmit="submitHandler(this); return false;">
		<textarea
			onkeydown="submitForm(this.form);"
			title="Нажмите ⌘⏎ или ⌃⏎ чтобы отправить"
			placeholder="Введите Ваш комментарии..."			
		></textarea>
		<button>Отправить</button>
	</form>
	<script>
	
		function submitForm(form) {
			if(
				(event.ctrlKey || event.metaKey) &&
				event.keyCode === 13
			) {
				submitHandler(form);
			}
		}
		
		function submitHandler(form) {
			// действие, которое совершается при отправке формы
			alert(form.elements[0].value);
		}
		
	</script>
</body>
</html>


Выводы:
1. ⏎ для перевода строки, ⌘⏎ или ⌃⏎ чтобы отправить
2. кнопка нужна: ⭾⏎ чтобы отправить; явно нажать


Часовой пояс GMT +3, время: 06:32.