添加新的文本行而不使用" .append"

时间:2015-07-21 19:38:15

标签: javascript jquery html

我的下拉列表中有contacts,即JohnBob等,旁边有一个按钮,当点击它时,它会显示我的<textarea></textarea>中的联系人电话号码。

每当我选择一个联系人并按下按钮时,我想在我的textarea中显示该号码,并且我添加的每个附加联系人号码我希望该号码显示在前一个号码下方。所以基本上我需要在这样的每个数字之间换行。

1234567890

5557778888

当我使用.append使用我的第一个功能时,它按照我想要的方式工作,但是,如果我编辑数字或取出数字,我就无法使用我的按钮将数字添加到textarea了。我从this SO article意识到它是因为文本节点和值可以断开连接。

然后我尝试使用.val,但这只是替换了我的textarea中的数字而不是在它下面附加。

解决此问题的最佳方法是什么?谢谢!

如果您需要任何其他信息,请与我们联系。

我的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');

        });

    },

2 个答案:

答案 0 :(得分: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'));
  });
},

答案 1 :(得分:0)

使用val,您可以尝试:

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

        });

    },