Обнаружить ключ возврата в текстовой области и, если присутствует определенная строка, написать строку в текстовую область [javascript]

В основном есть большая текстовая область, и я хочу иметь возможность делать с ней несколько вещей;

  1. Обнаружение, когда пользователь нажимает «ввод», чтобы перейти на новую строку,

    и

  2. Когда нажата клавиша ввода, если строка содержит определенную строку, скажем, «привет», в текстовую область будет записана строка с надписью «привет вам».

Я не могу, на всю жизнь, обнаружить строку внутри текстовой области. Хотя я большой новичок.

Весьма признателен.


person Community    schedule 08.09.2010    source источник


Ответы (1)


Для этой цели я бы использовал структуру JavaScript, например jQuery. Код будет выглядеть примерно так:

$(function() {
    $('textarea').keypress(function(event) {
        if (event.which == 13) { // Return key
            var textareaText = $(this).val();
            if (textareaText.match(/hello/)) {
                $(this).val(textareaText+"\nhello to you.");
            }
        }
    });
});
person jwueller    schedule 08.09.2010
comment
То есть я ввожу это слово в слово, и оно должно работать? $('textarea') будет именем моей текстовой области? - person ; 09.09.2010
comment
textarea — это селектор jQuery, который выбирает все <textarea>элементы на вашей странице. Обратите внимание, что /hello/ является регулярным выражением и должно быть записано как единое целое. Это не так тривиально, как может показаться. Вы, вероятно, должны прочитать некоторые учебники, прежде чем связываться с этим. - person jwueller; 09.09.2010
comment
Хорошо, так что это не сработало. Я должен предположить, что это не рабочий код? - person ; 09.09.2010
comment
... Это дерьмо было намного проще на питоне. Неуловимый, если вы используете чат Google или что-то подобное, не могли бы вы вообще ответить на несколько вопросов, которые у меня есть напрямую? - person ; 09.09.2010
comment
Это должен быть рабочий код, но, поскольку я едва знаю вашу разметку, очень сложно угадать, что именно вы ищете. И нет, я не пользуюсь мессенджерами. Извини за это. - person jwueller; 09.09.2010
comment
Хорошо, если jQuery выбирает все элементы ‹textarea›, разве это не будет работать независимо от разметки? - person ; 09.09.2010
comment
Это не сработает: дополнительная строка всегда будет вставлена ​​в конец текстовой области и всегда будет добавлять дополнительную строку, если значение текстовой области содержит приветствие, независимо от того, где находится курсор. - person Tim Down; 09.09.2010