Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2016, 13:09
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Отправка сообщения по нажатию Enter
Всем привет! Есть такая задача: нужно чтобы текст в теге textarea отправлялся по нажатию клавиши Enter или комбинацией ctrl+enter. Как такое реализовать? Вот код:
<!DOCTYPE html>
<html>
<head>
	<title>jQuery</title>
	<meta charset="utf-8" />
	<script type="text/javascript" src="jquery-3.1.0.min.js"></script>

<script type="text/javascript">
		$(document).ready(function () {
			$(document).on("click", "input[name='addbitch']", function() {
				var comment = $("textarea[name='textcommenta']").val();
				$("<p>-" + comment + "</p>").appendTo("#comments");
				document.getElementById('addbitch').value='';
			}); 
		});
		
		$(document).ready(function() {
			$("input[name='deletebitch']").bind("click", function() {
				$("#comments").empty();
			});
		});
	</script>

</head>
<body vlink="blue">
	<div id="comments"></div>
	<form name="mycomment" action="#" method="post">
		<textarea name="textcommenta" cols="40" rows="10" value="" id="addbitch"></textarea>
		<br/>
		<input type="button" name="addbitch" value="Отправить" />
		<input type="button" name="deletebitch" value="Удалить комментарии" />
        </form>
</body>
</html>

Последний раз редактировалось Хан, 26.07.2016 в 13:15.
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2016, 14:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<input type="submit" name="addbitch" value="Отправить" /> - отправит форму и по Enter.

$(document).ready(function() - зачем же для каждой установки обработчика прописывать?
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2016, 14:33
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Пробовал submit, вообще перестала функция работать, а обработчик пишу, чтобы html с js не пересекались, это как бы неправильно.
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2016, 15:02
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

По enter только однострочные поля уходят, ибо переносить там все равно нельзя, а текстареа - только по контроль-ентер, поскольку альт-ентер традиционно задействован для мягкого переноса.

В чем проблема код клавиш заюзать? Там все эти контроли с альтами и ентерами есть.

function keycheck(e){
    if (e.ctrlKey && e.keyCode == 13) {
       send();        
    }
};

textarea.addEventListener('keyup',keycheck);
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2016, 15:06
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Сообщение от warren buffet Посмотреть сообщение
По enter только однострочные поля уходят, ибо переносить там все равно нельзя, а текстареа - только по контроль-ентер, поскольку альт-ентер традиционно задействован для мягкого переноса.

В чем проблема код клавиш заюзать? Там все эти контроли с альтами и ентерами есть.

function keycheck(e){
    if (e.ctrlKey && e.keyCode == 13) {
       send();        
    }
};

textarea.addEventListener('keyup',keycheck);
Не получилось, а что за функция send()?
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2016, 15:15
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Ну а где у тебя отправка мессаги на сервер?
Ответить с цитированием
  #7 (permalink)  
Старый 26.07.2016, 15:17
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

А, ты хочешь так форму грузить, по сабмиту, без перделок, пнл.

Тогде вместо send() напиши this.form.submit();
Ответить с цитированием
  #8 (permalink)  
Старый 26.07.2016, 15:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<!DOCTYPE html>
<html>
<head>
	<title>jQuery</title>
	<meta charset="utf-8" />
	<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script type="text/javascript">
		$(document).ready(function () {
			$("input[name='addbitch']").on("click",  function() {
				var comment = $("textarea[name='textcommenta']").val();
				$("<p>-" + comment + "</p>").appendTo("#comments");
				$('#addbitch').val('');
			}); 

			$("input[name='deletebitch']").bind("click", function() {
				$("#comments").empty();
			});
                        $("#addbitch").on("keyup", function(e) { 
                            if (e.ctrlKey && e.keyCode == 13) {
                               $("input[name='addbitch']").trigger( "click" );
                            }
                        });
		});
	</script>
</head>
<body vlink="blue">
	<div id="comments"></div>
	<form name="mycomment" action="#" method="post">
		<textarea name="textcommenta" cols="40" rows="10" value="" id="addbitch"></textarea>
		<br/>
		<input type="button" name="addbitch" value="Отправить" />
		<input type="button" name="deletebitch" value="Удалить комментарии" />
        </form>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 26.07.2016, 16:48
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Кстати

Цитата:
<input type="button" name="deletebitch" value="Удалить комментарии" />

Специально для оленеводов предусмотрена кнопка reset.

<input type="reset" value="Удалить комментарии"/>


и ничего больше не надо. Более того, reset не стирает данные, а возвращает defaultValue на место. Если value="" то сотрет, а если было прописано value="лесной олень", то вернет лесного оленя. И напоследок, если уж не хочется рисовать reset, то вызывай одноименный метод формы после нажатия любой хтмл кнопки form.reset() и всё.

Последний раз редактировалось warren buffet, 26.07.2016 в 16:52.
Ответить с цитированием
  #10 (permalink)  
Старый 26.07.2016, 16:58
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Цитата:
$("input[name='addbitch']").trigger( "click" );
Капец блин. Если инпуты валяются просто так, в каком-нить диве или еще где, то придется кликать и стирать и заниматься хренатой тащемта, но, если инпуты в форме, то надо знать, что умеет и что может форма, а может она все, что надо, поскольку рождена задолго до DHTML'я сраного.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы по нажатию enter не обновляя страницу Elect Events/DOM/Window 8 16.09.2015 04:14
Отправка данных по нажатию Enter ivanpotapov2 Общие вопросы Javascript 6 11.12.2014 12:50
Резиновые дивы с прокруткой Java Script Mary-Jay Элементы интерфейса 10 24.07.2013 17:51
Отправка формы по ENTER (ajax) и перенос строки VEGA jQuery 18 01.03.2013 14:09
Отправка формы по нажатию на ENTER Vuzy Общие вопросы Javascript 9 24.01.2013 23:36