<input type="checkbox" name="enter" id="otpr" checked="checked">
<label for="otpr"> Отправка по Enter</label>
<textarea rows="10" cols="151" name="message" id="message" style="border:5px solid #0066FF" onkeyPress="if(event.keyCode==13&&$('#otpr').attr('checked')&&$('#message').val( )!=='') {
otpr_ajax();
}">
</textarea>
<input type="submit" value="Сказать">
$(function(){ <!--отправка кнопкой-->
$(':submit').click(function(e){
e.preventDefault();
if ($('#message').val()!=='') {
otpr_ajax();
}
else {return false;}
});
Спустя 2 минуты, 28 секунд (1.04.2011 - 12:09) alex12060 написал(а):
<textarea rows="10" cols="151" name="message" id="message" style="border:5px solid #0066FF" onkeyPress="if(event.keyCode==13&&$('#otpr').attr('checked')&&$('#message').val( )!=='') {
otpr_ajax();
}">
Жесть то какая :D
Спустя 1 минута, 16 секунд (1.04.2011 - 12:10) alex12060 написал(а):
Почему по нажатию на Энтер? А если я хочу написать
вот
так
?
Я же уйду от тебя))
вот
так
?
Я же уйду от тебя))
Спустя 8 минут, 41 секунда (1.04.2011 - 12:19) l@pteff написал(а):
для этого можно снять чекбокс и всё
Спустя 4 минуты, 42 секунды (1.04.2011 - 12:23) alex12060 написал(а):
Проще так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Гостевая книга 1.0</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function() {
$("#message").bind('keydown', function(key) {
if (key.ctrlKey && key.keyCode == 13) {
if ($("#message").val() == "") alert('Отправлять пустое сообщение нельзя!');
else
otpr_ajax();
}
});
});
</script>
</head>
<body>
<textarea id="message" cols="6" style="width: 550px; height: 170px"></textarea>
<p></p>
</body>
</html>
Спустя 30 минут, 37 секунд (1.04.2011 - 12:54) Zerstoren написал(а):
Ентер бессмыслен в <input type="text"
а в текст ареа можно юзать ctrl + Enter
я у себя сделал так)
а в текст ареа можно юзать ctrl + Enter
я у себя сделал так)
Спустя 18 минут, 6 секунд (1.04.2011 - 13:12) l@pteff написал(а):
это всё понятно, в том и сложность, что нужно учесть все условия для обоих случаев отправки.
Через кнопку:
-если поле ввода пустое, отмена отправки, иначе отправка
через ctrl-enter (так и быть):
-если флажок активен и поле ввода пустое, отмена отправки, иначе отправка
поэтому столько "выкрутасов", в коде выше мы по сути просто проверяем нажаты ли клавиши ctrl+enter, когда курсор в поле, независимо от того есть ли там текст
Через кнопку:
-если поле ввода пустое, отмена отправки, иначе отправка
через ctrl-enter (так и быть):
-если флажок активен и поле ввода пустое, отмена отправки, иначе отправка
поэтому столько "выкрутасов", в коде выше мы по сути просто проверяем нажаты ли клавиши ctrl+enter, когда курсор в поле, независимо от того есть ли там текст
Спустя 33 минуты, 28 секунд (1.04.2011 - 13:46) l@pteff написал(а):
ближе всего к результату был когда в textarea в onkeyPress вместо otpr_ajax() написал полностью текст функции, после этого не выполнялись только условия для пустых полей для кнопки и энтера (отправка всё равно шла). Я так понимаю сами по себе способы отправки рабочие, нужно их правильно скомбинировать
Спустя 6 часов, 26 минут, 47 секунд (1.04.2011 - 20:12) l@pteff написал(а):
Цитата |
в коде выше мы по сути просто проверяем нажаты ли клавиши ctrl+enter, когда курсор в поле, независимо от того есть ли там текст |
alex12060, прошу прощения, когда это писал не видел твой отредактированный пост...
действительно, так значительно проще, было предчувствие что здесь лучше юзать bind() но по неопытности не рискнул

Спустя 5 минут, 54 секунды (1.04.2011 - 20:18) alex12060 написал(а):
Я еще раз отредактировал, так как 0 написал зря)
Вообще, слышал, что bind() медленней live(), да и вообще, можно пользоваться разными методоами - это сугубо личный выбор)
Вообще, слышал, что bind() медленней live(), да и вообще, можно пользоваться разными методоами - это сугубо личный выбор)
Спустя 1 день, 11 часов, 35 минут, 20 секунд (3.04.2011 - 07:54) l@pteff написал(а):
Однако не могу удержаться от вопроса: а почему по Энтеру работает криво? Т.е. такой код:
отправляет форму даже при пустом поле :( . Это в связи с какими-то особенностями textarea? И как тогда отправка по Enter реализуется в icq?
$("#message").bind('keydown', function(key) {
if (key.keyCode == 13 || key.keyCode == 10) {
if ($("#message").val() == "") alert('Отправлять пустое сообщение нельзя!');
else
otpr_ajax();
}
});
отправляет форму даже при пустом поле :( . Это в связи с какими-то особенностями textarea? И как тогда отправка по Enter реализуется в icq?
Спустя 1 час, 11 минут, 14 секунд (3.04.2011 - 09:05) SerginhoLD написал(а):
l@pteff
скорее всего при нажатии Enter в поле добавляется \r\n
скорее всего при нажатии Enter в поле добавляется \r\n
Спустя 7 минут, 26 секунд (3.04.2011 - 09:12) l@pteff написал(а):
а как подправить мой код под это?
Спустя 21 минута, 40 секунд (3.04.2011 - 09:34) SerginhoLD написал(а):
$('textarea').keypress(function(event) {
if (event.which == '13') {
$('textarea').val($('textarea').val().trim('\r\n').trim(' '));
if ($('textarea').val().length == 0)
{
alert('Сообщение пусто');
}
else alert('Отправляем форму');
}
});
Спустя 7 минут, 49 секунд (3.04.2011 - 09:42) l@pteff написал(а):
большое спасибо, всё верно, теперь с отправкой по Enter проблем нет.