2015-02-24 8 views
8

Sto usando jQuery scelto e voglio impostare valori selezionati da JavaScriptvalori Jquery set scelto selezionati da 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 ha valori inferiori a

[5, 1, 7]

voglio set 5 valore selezionato, 1 valore selezionato 7 valore selezionato

Quando ho provato sotto

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

non sta funzionando per me .

risposta

15

È necessario attivare l'evento chosen:updated dopo aver impostato il valore di select

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

Per selezionare più v alori

$(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

grazie per l'aiuto funziona comunque il valore selezionato è sempre l'ultimo indice come posso risolvere questo problema? – Beyto

+0

@byto vedere l'aggiornamento –

+0

grazie mille funziona come un fascino: D – Beyto

0

Invece di

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

Dovrebbe essere

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

nessun avviso nessun errore tuttavia non selezionando nulla – Beyto

+0

@byto ... ti sei perso '#' nel selettore jQuery basta correggerlo. –

0

Utilizzare questa

Ti sei perso '#'

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

funziona ma ha sempre impostato l'ultimo indice come posso risolvere il problema – Beyto

0

Finora questa via è supportata per aggiornare più valori:

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