Jquery, форматирование в текстовой области

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я работал над расширением на работе, и единственное, что ускользает от меня, — это форматирование текстовой области на основе трех входных данных, которые я объединяю и пытаюсь создать новую строку для каждого ввода при последнем вводе. Это работает для первых двух строк, затем новые строки начинают складываться в две строки между отправками, затем 4 и т.д.

 $("#misc").keyup(function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
        var newText = $('#medication').val()   " "   $('#diagnosis').val()   " "   $('#misc').val();

        $("#form").val($("#form").val()   newText   "rn");

        nextBox = textboxes[0];
        nextBox.focus();
        nextBox.select();
        console.log("first");
        $('#medication').val("");
        $('#diagnosis').val("");
        $('#misc').val("");

        return false;
    }
});
 

Любая помощь будет с благодарностью
https://jsfiddle.net/rcu8dmon /
это вроде как то, на что это похоже, но по какой-то причине оно не работает в jsfiddle.

Отредактировано, чтобы добавить jsfiddle для html / css / javascript

Комментарии:

1. Не могли бы вы добавить соответствующий HTML?

2. добавлен jsfiddle для отображения html

3. Вам нужно указать, что вы хотите использовать jquery в своей скрипке: jsfiddle.net/rcu8dmon/1

4. Убедитесь, что вы привязываете событие keyup только один раз — в настоящее время оно привязывается несколько раз.

Ответ №1:

Вы привязываете #misc keyup событие s каждый раз, когда .medication keyup происходит событие s, поэтому это происходит n раз, когда #misc keyup происходит событие s. Переместите #misc событие ‘s keyup за пределы события переноса, и оно будет исправлено.

Комментарии:

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

2. может быть, вы переназначаете событие, когда оно происходит? Событие выполняется один раз, нормально. дважды, одна дополнительная строка, но вы не поймете. 4 раза, теперь 3 дополнительные строки и т.д.

3. screencast.com/t/mW2Awqlc вот как это выглядит для справки.

4. прочитайте мой предыдущий комментарий. Я думаю, вы делаете то, что я сказал.

5. Скрипка связывает событие внутри другого события, поэтому, вероятно, второе событие привязывается несколько раз.

Ответ №2:

Кроме того, ваш класс лекарств в событии keyup также запускается в последнем imput. Вы пытаетесь исправить это, проверяя последний imput, но вы сравниваете тип «undefined» с null. Вариант, который просто удаляет «!== null»: http://www.w3schools.com/js/js_comparisons.asp

 if (textboxes[currentBoxNumber   1])