2016-12-01 5 views
0

ich habe: @Html.EnumDropDownListFor(model => model.City, htmlAttributes: new { @class = "form-control", @id = "dropdownID" })Populate Textbox mit mehreren Werten von Dropdownlist

ich eine Textbox von diesem DropDownList mit mehreren Werten durch Komma getrennt ausfüllen möchten. Ich habe zwei Dinge ausprobiert, aber ich stecke gerade fest.

1.

$('#dropdownID').on('change', function() { 
     $("#textbox").val($(this).find("option:selected").text()); 
}) 

Dies ist auf die Textbox einen Textwert sendet aber, wie ich es mit mehreren Werten?

var mytextbox = document.getElementById('textbox'); 
var mydropdown = document.getElementById('dropdownID'); 

mydropdown.onchange = function() { 
    mytextbox.value = mytextbox.value + this.value; 
} 

Die zweite ist mir jeden Wert in der Textbox geben ich aber nicht den Text auswählen, wie ich es den Text machen kann, anstatt den Wert auf Diplay?

Ich bin nicht so gut mit jquery. Vielen Dank!

+0

Sind Sie mit ASP.NET MVC? Syntax im ersten Snippet sieht wie Razor aus. – user44

+0

ja, ich befülle diese Drop-Down-Liste von einem Enum, das ist alles der MVC-Teil. – Eduard

Antwort

0

Sie sind nah bei Ihrer ersten Lösung. Sie müssen nur auch die .val() Funktion den bestehenden Wert zu übergeben, wie folgt aus:

$("#textbox").val($('#textbox').val() + ' ' + 
     $(this).find("option:selected").text()); 
+1

Um die Dinge ein wenig glatter zu machen, möchten Sie vielleicht zuerst das Handle für das Textbox-Element in einer separaten Variablen erfassen: var $ textbox = $ ('# textbox'); dann benutze das Handle: $ textbox.val ($ textbox.val() + $ (this) .find ('option: selected'). text()); – Ryan

1
$('#dropdownID').on('change', function() { 
    var textBox = $('#textbox'); 
    var previousTextBoxValue = textBox.val(); 
    var optionText = $(this).find("option:selected").text(); 
    textBox.val((previousTextBoxValue ? previousTextBoxValue + ', ' : previousTextBoxValue) + optionText); 
}); 
Verwandte Themen