Ya estoy usando este bloque de código
<div class="col-12 col-md-12 col-sm-12"> <small>Clique para selecionar e/ou retirar um produto desejado</small> <select name="id_produtos" data-label="Produtos" id="produtos" class="form-control show-tick pl-4 pr-4 pb-4 " data-live-search="true" multiple> <option value="" disabled>Selecione um produto</option> @foreach (var item in Model.Produtos) { <option value="@item.id_produto">@item.nome</option> } </select> <small>Produtos Selecionados</small> @*<label id="produtos-selecionados" class="mm-yyyy form-control"> </label>*@ <textarea id="produtos-selecionados" class="mm-yyyy form-control" rows="10" cols="40" minlength="10" maxlength="25" readonly></textarea> </div>y este guion:
$('select[name="id_produtos"]').change(function () { var text = $(this).find("option:selected").text(); if (text != "") { text = text; } $('#produtos-selecionados').val(text); });Pero no tomó un salto de línea en el área de texto.
Por favor, ayúdenme chicos, gracias por cierto.
$(this).find("option:selected") obtendría uno o más elementos. Entonces, el .text() en más de un elemento podría ser problemático. Es posible que pueda hacer esto con la cadena .map().get().join() de jQuery. De esta manera, tiene más control sobre los caracteres de salto de línea entre los valores.
Al igual que:
$('select[name="id_produtos"]').change(function() { var v = $(this).find('option:selected') // Get all selected options .map(function() { // For each option return the label text only return this.innerText; // or use this.value if that's what you want }) .get() // Get as an array .join("\n"); // Join/glue together with line breaks $('textarea').val( v ); // Set textarea contents }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select name="id_produtos" multiple> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option> <option value="4">Four</option> <option value="5">Five</option> </select> <textarea rows="5"></textarea>