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

ozxc1zmp  于 2022-12-29  发布在  jQuery
关注(0)|答案(2)|浏览(151)

我如何使用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在按钮点击时设置多下拉列表中的值

bqjvbblv

bqjvbblv1#

您需要提供字段名称,其值将被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将在选择时绑定
在您的情况下,请选中ActionsList,并将存在的属性名称替换为AccountId和AccountName

eh57zj3b

eh57zj3b2#

你可以使用choosen js来执行多选功能。
请参考本文档中的演示。
http://harvesthq.github.io/chosen/

相关问题