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.
|
|
26.07.2016, 14:06
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
<input type="submit" name="addbitch" value="Отправить" /> - отправит форму и по Enter.
$(document).ready(function() - зачем же для каждой установки обработчика прописывать?
|
|
26.07.2016, 14:33
|
Аспирант
|
|
Регистрация: 20.07.2016
Сообщений: 45
|
|
Пробовал submit, вообще перестала функция работать, а обработчик пишу, чтобы html с js не пересекались, это как бы неправильно.
|
|
26.07.2016, 15:02
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
По enter только однострочные поля уходят, ибо переносить там все равно нельзя, а текстареа - только по контроль-ентер, поскольку альт-ентер традиционно задействован для мягкого переноса.
В чем проблема код клавиш заюзать? Там все эти контроли с альтами и ентерами есть.
function keycheck(e){
if (e.ctrlKey && e.keyCode == 13) {
send();
}
};
textarea.addEventListener('keyup',keycheck);
|
|
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()?
|
|
26.07.2016, 15:15
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Ну а где у тебя отправка мессаги на сервер?
|
|
26.07.2016, 15:17
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
А, ты хочешь так форму грузить, по сабмиту, без перделок, пнл.
Тогде вместо send() напиши this.form.submit();
|
|
26.07.2016, 15:52
|
Профессор
|
|
Регистрация: 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>
|
|
26.07.2016, 16:48
|
Профессор
|
|
Регистрация: 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.
|
|
26.07.2016, 16:58
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Цитата:
|
$("input[name='addbitch']").trigger( "click" );
|
Капец блин. Если инпуты валяются просто так, в каком-нить диве или еще где, то придется кликать и стирать и заниматься хренатой тащемта, но, если инпуты в форме, то надо знать, что умеет и что может форма, а может она все, что надо, поскольку рождена задолго до DHTML'я сраного.
|
|
|
|