在多选下拉列表MVC3 jquery中选择项目

问题描述 投票:0回答:2

如何使用jquery在多选下拉列表中设置值。我正在使用MVC3 Razor视图来显示多选下拉列表并使用http://quasipartikel.at/multiselect_next/这个多选插件。

 <div class="editor-field">         
   @Html.DropDownListFor(model => model.ActionId, (SelectList)ViewBag.ActionsList, new { @class = "multiselect", @multiple = "multiple", @style = "width: 450px;height:300px" })
    @Html.ValidationMessageFor(model => model.ActionId)   
</div>
<button onclick="setValues()">Set values </button>

在javascript中我使用了代码

function setValues() {      
    var valArr = [2, 3, 5];
    var i = 0, size = valArr.length;
    var  $options = $('#ActionId option');
    for (i; i < size; i++) {           
        // $("#ActionId option[value='" + valArr[i] + "']").attr("selected", 1); this is also not working
        $("#ActionId option[value='" + valArr[i] + "']").attr("selected", true);
    }     
}

但是,未在按钮的单击事件中选择值。当我刷新页面时,值将被选中。我怎么能克服这个?我想在按钮点击使用javascript设置多点击列表中的值

jquery asp.net-mvc-3 razor html-select
2个回答
0
投票

您可以提供字段名称,其值将由Razor引擎绑定到下拉列表,您需要提供要在下拉列表中绑定的属性名称。试试吧

@Html.DropDownListFor(model => model.ActionId, new SelectList(@ViewBag.ActionsList,"AccountID","AccountName"), new { @class = "multiselect", @multiple = "multiple", @style = "width: 450px;height:300px" })

其中AccountId,AccountName是ActionsList中的属性字段,AccountName值将显示在页面中,AccountId将在select上绑定

在您的情况下,检查ActionsList并将属性名称放在AccountId和AccountName的位置


0
投票

您可以使用选定的js执行多选功能。

请参阅此文档并附带演示。

http://harvesthq.github.io/chosen/

© www.soinside.com 2019 - 2024. All rights reserved.