2015-02-24 10 views
8

Ich bin mit jquery gewählt und ich möchte von Javascript ausgewählten Werte setzenJQuery gewählt Satz ausgewählte Werte von Javascript

Javascript/Jquery

$(document).ready(function() { 
    var selectedUserRole = document.getElementById('SelectedUserRole').value; 
    var str_array = selectedUserRole.split(','); 

    for (var i = 0; i < str_array.length; i++) { 
    // Trim the excess whitespace. 
    str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, ""); 
    // Add additional code here, such as: 

    $("UserRole").prop('selectedValue', str_array[i]); // Here not working 
    } 
}); 

Html:

@Html.DropDownList("UserRole", null, new { id = "UserRole", @class = "chosen-select", @multiple = "multiple", @placeholder = "Lütfen Rol Seçiniz", @style = "width: 250px;" }) 

str_array hat Werte unter

[5, 1, 7]

Ich möchte Set 5 Wert ausgewählt, 1 Wert 7 ausgewählt Wert ausgewählt

Als ich unten

versucht
$("UserRole").prop('selectedValue', str_array[i]); 

es für mich nicht funktioniert .

Antwort

15

Sie müssen die chosen:updated Ereignis auslösen, nachdem der select Wert

$("#UserRole").val(str_array[i]).trigger("chosen:updated"); 

Einstellung mehrerer v So wählen Sie alues ​​

$(document).ready(function() { 

    var selectedUserRole = document.getElementById('SelectedUserRole').value; 

    var str_array = selectedUserRole.split(','); 

    for (var i = 0; i < str_array.length; i++) { 
     str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, ""); 
    } 

    $("#UserRole").val(str_array).trigger("chosen:updated"); 
}); 

Demo: Fiddle

+0

danke für die Hilfe es funktioniert aber der ausgewählte Wert ist immer letzten Index Wie kann ich dieses Problem lösen? – Beyto

+0

@byto das Update –

+0

Vielen Dank, es funktioniert wie ein Charme: D – Beyto

0

Statt

$("UserRole").prop('selectedValue', str_array[i]); 

Es sollte

sein
$("#UserRole").prop('selectedValue', str_array[i]); // include '#' id selector here 
+0

keine Warnungen kein Fehler aber keine Auswahl – Beyto

+0

@byto ... Sie verpasst '#' in jQuery Selektor nur korrigieren. –

0

verwenden

Sie verfehlten '#'

$("#UserRole").prop('selectedValue', str_array[i]); 
+0

es funktioniert, aber es immer letzten Index wie kann ich das Problem lösen – Beyto

0

Ab sofort auf diese Weise unterstützt wird, mehrere Werte zu aktualisieren:

$("#UserRole").val(str_array).trigger("chosen:updated");