2015-07-21 4 views
0

У меня есть выпадающий список, в котором есть , то есть John, Bob и т. Д. И рядом с ним кнопка, которая при нажатии на нее отображает номер телефона контакта в мой <textarea></textarea>.Добавить новую строку текста без использования «.append»

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

1234567890

5557778888

Когда я использую свою первую функцию, используя .append, он работает так, как я хочу, однако, если я изменить номера или взять номера, я не могу использовать кнопку, чтобы добавить номера в текстовое поле больше. Я понял из this SO article, что это связано с тем, что текстовые узлы и значение могут быть отключены.

Затем я попытался использовать .val, однако это просто заменяет цифры в моем текстовом поле вместо добавления ниже.

Какой был бы лучший способ решить эту проблему? Благодаря!

Дайте мне знать, если вам нужна дополнительная информация.

Мои JavaScript функции:

Использование .append()

selectOption: function() { 

     $('#addContact').click(function() { 
      $('#toPhoneNumber').append($('#toAdd option:selected').data('number') + '&#xA;'); 

     }); 

    }, 

Использование .val()

selectOption: function() { 

     $('#addContact').click(function() { 
      $('#toPhoneNumber').val($('#toAdd option:selected').data('number') + '\n'); 

     }); 

    }, 

ответ

1
var nums =[]; 
. 
. 
selectOption: function() { 
    $('#addContact').click(function() { 
    var num =$('#toAdd option:selected').data('number'); 
    if (nums.indexOf(num)==-1) nums.push(num); 
    $('#toPhoneNumber').val(nums.join('\n')); 
    }); 
}, 
+0

Только то, что я ищу! Просто быстрый вопрос, что является хорошим способом предотвратить добавление номера одного и того же контакта более чем в два раза? В настоящее время я могу несколько раз щелкнуть по кнопке, и она добавит номер этого контакта несколько раз в мое текстовое поле, чего я не хочу. Прошу прощения за задание другого вопроса здесь, вам не нужно отвечать на него. Оценил. – user3128376

+0

На самом деле, я просто понял, что с этим я не смогу вручную вводить числа в текстовое поле, так как это не сохранит числа, которые я вводил вручную. – user3128376

+0

@ user3128376, пожалуйста, см. Обновление для обмана. Если вы хотите ввести себя, добавьте 'nums = $ (" # toPhoneNumber "). Val(). Split (" \ n ");' возможно, с тестом, чтобы увидеть, что есть какие-либо цифры в поле перед использованием nums – mplungjan

0

С Валу вы можете попробовать:

selectOption: function() { 
     var temp = $('#toPhoneNumber').val(); 
     $('#addContact').click(function() { 
      $('#toPhoneNumber').val(temp + $('#toAdd option:selected').data('number') + '\n'); 

     }); 

    }, 
Смежные вопросы