Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery отследить переход на новую строку в textarea (https://javascript.ru/forum/misc/27801-jquery-otsledit-perekhod-na-novuyu-stroku-v-textarea.html)

andreo 25.04.2012 14:00

jquery отследить переход на новую строку в textarea
 
Привет всем, как можно осуществить подобную задумку?

1. Вводишь текст в textarea
2. При переходе на новую строку по клавише enter, перед текстом который вводишь с этой новой строки добавлялся символ: +
Пример:
+ Первая строка
+ Вторая строка
+ Третья строка

и т.д.
Пробовал отследить нажатие клавиши enter, работает только если ты не вводишь текст:

$('textarea').bind('keypress', function(e) {
		if (e.which == 13){
		var text = $(this).val();
		$(this).text(text + "\n+");
		}
		});


<textarea rows="5" cols="45"></textarea>

Boolean_Type 24.10.2014 21:38

Пусть некропост, но всё же:
http://api.jquery.com/text/
"The .text() method cannot be used on form inputs or scripts. To set or get the text value of input or textarea elements, use the .val() method."
Выходит, что поведение text() для textarea непредсказуемо, что и показал Ваш скрипт. Вот так норм:
<textarea rows="5" cols="45"></textarea>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$('textarea').keypress(function(e) {
	if (e.which == 13){
	var text = $(this).val();
	$(this).val(text + '\n+ ');
	return false;
	}
});
/*
//или так
$('textarea').keypress (function (event) {
	if (event.which == 13){
		this.value += '\n+ ';
		return false;
	}
})*/
</script>


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