JQuery получить текстовый текст

415

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

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

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

Теги:

7 ответов

633
Лучший ответ

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

$('input#mybutton').click(function() {
    var text = $('textarea#mytextarea').val();
    //send to server and process response
});
  • 2
    Потому что текстовая область будет содержать больше, чем просто необходимый текст. (это консоль, визуализируйте командную строку). Спасибо за информацию о функции val. :)
  • 0
    Вы можете обрабатывать текст с помощью JavaScript. Какой смысл возвращать коды клавиш?
Показать ещё 3 комментария
21

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

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

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

  • 0
    Да, именно то, что я думал. Это единственное чистое решение, которое не включает в себя ни разбор входных данных из выходных данных (глупо пытаться - что делать, если пользователь вводит какие-то «выходные данные»), ни попытки создать строку из событий нажатия клавиш (глупо пытаться - как насчет возврата и т. д.?).
  • 3
    Еще одна проблема XY на SO. Это, безусловно, лучшее решение «Х» его проблемы.
16

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

получим:

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

набор:

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

Обычно это свойство value

testArea.value

Или что-то мне не хватает в том, что вам нужно?

  • 0
    Я на самом деле надеялся, что событие с измененной текстовой информацией или что-то в этом направлении будет вызвано (в любом случае я мог бы сделать это довольно легко с событием keyup) Я думаю, что я буду использовать событие keyup, но знаете ли вы способ преобразования кода ключа в ASCII-символ? Благодарю. :)
7

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

var char = String.fromCharCode(v_code);

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

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

6

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

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

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

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

0

лучший способ:   $ ('# myTextBox'). val ('новое значение'). trim();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню