#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])