| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как в textarea перети на новую строчку нажав Shift |
| Автор: Elfet 1.2.2008, 14:12 |
| Как в textarea перети на новую строчку нажав Shift + Enter? А по Enter отправить форму? |
| Автор: dsCode 2.2.2008, 01:34 |
| Elfet, - повесить onkeydown на texare'ю; - обработать в нем e.keyCode (13) и e.shifKey (если оба присутствуют - сделать this.value += '\n', если только первый - отправка формы), также предотвратить дефолтные события |
| Автор: Elfet 3.2.2008, 21:36 |
| Ок, спасибо! |
| Автор: Elfet 6.2.2008, 11:41 | ||
А как сделать так что бы ещё при нажатии на enter новая строчка не появлялась?
|
| Автор: Ghirik 6.2.2008, 12:18 |
| Наверное, вместо text.value = ''; написать evt.returnValue; и следом сабмит вашей формы, попробуйте. |
| Автор: Elfet 6.2.2008, 15:48 |
| У меня никакой формы нет. только textarea. evt.returnValue? |
| Автор: Ghirik 6.2.2008, 16:54 | ||
Да, этим вы отмение обработчика события имеющегося по умолчанию. Прервете обработку события (перевод на новую строку). А форму можете не отправлять, просто, Вы в первом посте написали про отправку формы по нажатию Enter. |
| Автор: Elfet 6.2.2008, 23:25 | ||||
| Да, точно. Неточность Так как этим воспользоваться? Как прервать событие?
|
| Автор: ksnk 6.2.2008, 23:49 | ||
Как-то мучался с такого рода обработкой, сочинилось вот это
писать нужно return clearEv(evt); |
| Автор: Elfet 6.2.2008, 23:55 |
| evt.returnValue = null; - тока в IE работает? Добавлено через 1 минуту и 39 секунд ksnk, ооо!! отлично работает! везде? |
| Автор: ksnk 7.2.2008, 00:21 |
| Я пока не встречал мест, где бы она не работала ;-) Я, правда, бываю не везде. Ie-6/7 FF, Опера 9.25... |
| Автор: Ghirik 7.2.2008, 00:34 | ||
| Я сам путаный, Вы меня ещё запутали... Строчка
отменит выполнение обработки события evt, в данном случае keydown. Но чтобы не произошла вствка символа, по моему, нужно отменять keypress(не уверен). Вы опишите конкретно чего Вы добиваетесь. Вставляя строчку text.value = ''; Вы полностью затираете всё, что было набрано. Так и нужно? Нажатие enter при нажатом шифте и так приводит к простому переводу строки. Зачем тогда вы всё это делаете? Добавлено через 2 минуты и 47 секунд Во блин, опоздал с постом. Всё время забываю обновить страницу.... наоткрываю штук двадцать, так и висят.... ksnk, как вы догадались чего Elfet хочет добиться? Добавлено через 8 минут и 42 секунды ksnk, а что returnValue = false работает не везде? Я использую, ошибок не видел... Только я обработчиков вешаю свойством объекта. |
| Автор: Ghirik 7.2.2008, 00:57 | ||
Я такую фичу тоже проделывал, только давно... тогда совсем криво писал. Но у меня всё уговорилось, только заметно было, как курсор обратно встает. |
| Автор: ksnk 7.2.2008, 08:09 |
| Угу... В Опере вот так и осталось, а IE и FF удалось полностью уговорить игнорировать табуляцию, а делать только то, что надо... |