将Selectbox值附加到textarea

时间:2016-02-13 10:56:14

标签: javascript jquery html

我似乎有一个非常基本的问题。我正在尝试将选定框中的选定值添加到文本区域。我还需要用户能够在文本区域添加额外的内容。

例如,他们选择一个选项 - >然后将其添加到选择框 - >用户可以输入额外信息 - >然后从选择框中选择另一个项目,该项目会在用户添加的文本后添加。我遇到的问题是,一旦我将文本添加到textarea,当你选择一个项目时它就不再被添加了。

这是我的代码:

<p>
  <select name="selectfield" id="selectfield">
    <option value="" selected>- Select -</option>
    <option value="Apples/">Apples/</option>
    <option value="Oranges/">Oranges/</option>
    <option value="Plums/">Plums/</option>
  </select>
</p>

<textarea style="width:100%" name="info" id="info" cols="20" rows="5"></textarea>
$("#selectfield").on("change", function(){
 var info = $("#selectfield").val();
  $("#info").append(info);
});

我希望能够拥有的textarea中的示例文本是:

Oranges/200Plums/10 etc.

https://jsfiddle.net/rdawkins/80j9q0jf/2/

1 个答案:

答案 0 :(得分:0)

您不能以您尝试的方式append()textarea。相反,您可以向val()提供一个函数,将select的所选值添加到当前设置。试试这个:

$("#selectfield").on("change", function() {
    var $select = $(this);
    $("#info").val(function(i, val) {
        return val += $select.val();
    })
});

Updated fiddle

我会注意到,这种模式不是非常用户友好,很容易被用户意外删除所选的选择值。我认为你可能最好用每个项目列出自己的输入字段,以供用户修改。