2008-09-28 4 views
405

Недавно я начал играть с jQuery и выполнял несколько учебников. Теперь я чувствую себя немного компетентным в использовании (довольно просто), и я подумал, что было бы здорово, если бы я смог создать «консоль» на моей веб-странице (например, вы нажимаете клавишу «, как в FPS, и т. д.), а затем снова запустите Ajax на сервер, чтобы сделать что-то.jQuery get textarea text

Первоначально я думал, что лучший способ - просто получить текст внутри текстового поля, а затем разделить его или использовать событие keyup, преобразовать код ключа, возвращенный символу ASCII, добавить символ в строку и отправьте строку на сервер (затем выпустите строку).

Я не мог найти информацию о получении текста из текстового поля, все, что я получил, это информация о ключах. Кроме того, как я могу преобразовать код ключа, возвращенный символу ASCII?

ответ

614

Почему вы хотите преобразовать ключевые штрихи в текст? Добавьте кнопку, которая отправляет текст внутри текстового поля на сервер при нажатии. Вы можете получить текст, используя атрибут значения, как плакат, прежде чем указывали, или с помощью API JQuery в:

$('input#mybutton').click(function() { 
    var text = $('textarea#mytextarea').val(); 
    //send to server and process response 
}); 
+2

Потому что в textarea будет больше, чем просто текст. (это консоль, визуализировать командную строку). Спасибо за информацию о функции val. :) – RodgerB 2008-09-28 00:20:03

+0

Вы можете обрабатывать текст с помощью javascript. Какова точка возврата ключевых штриховых кодов? – 2008-09-28 00:21:00

13

Обычно это значение свойства

testArea.value 

Или есть что-то я пропускаю в том, что вам нужно?

+0

Я действительно надеюсь, что произойдет событие с измененным текстом или что-то подобное по линии (я мог бы сделать это довольно легко с событием keyup). Я думаю, что я буду придерживаться использования события keyup, но знаете ли вы способ конвертировать код ключа в ASCII-символ? Благодарю. :) – RodgerB 2008-09-28 00:17:24

8

Я понял, что я могу преобразовать KEYCODE события к символу с помощью следующей функции :

var char = String.fromCharCode(v_code); 

Оттуда я бы затем добавить символ в строку, и при нажатии на клавишу ввода отправить строку на сервер. Извините, если мой вопрос казался несколько загадочным, а название означало что-то почти полностью вне темы, рано утром, и я еще не завтракал;).

Спасибо за помощь.

23

У вас должен быть div, который содержит только консольные сообщения, то есть предыдущие команды и их вывод. И под класть ввод или текстовое поле, которое просто содержит команду, которую вы вводите.

------------------------------- 
| consle output ...   | 
| more output     | 
| prevous commands and data | 
------------------------------- 
> This is an input box. 

Таким образом, вы просто отправить значение ввода на сервер для обработки, и добавить результат на консоль сообщений дел.

7

Понятно, что слово «консоль» вызывает путаницу.

Если вы хотите эмулировать в старом стиле полные/полудуплексные консоли, вы бы использовать что-то вроде этого:

$('console').keyup(function(event){ 
    $.get("url", { keyCode: event.which }, ...); 
    return true; 
}); 

event.which имеет ключ, которая была нажата. Для обработки обратного пространства event.which === 8.

18

Где часто используется текстовая функция (например,в дивы и т.д.), то для текстовой области это вал

прибудете:

$('#myTextBox').val(); 

набор:

$('#myTextBox').val('new value'); 
0

лучшим образом:. $ ('# MyTextBox') Вал ('новый значение ') обрезки().