【问题标题】:set selected value in jquery multiselect dropdown在 jquery 多选下拉列表中设置选定值
【发布时间】:2017-10-18 17:39:02
【问题描述】:

我有一个场景,我必须在多选下拉菜单中设置多个值,如下面的屏幕截图所示。

以下是我的模型,我将 ExcursionList 作为字符串 List 的类型。

 public class HotelInfo
{
 public List<string> ExcursionList { get; set; }
}

我在控制器中将我的酒店信息作为 JSON 结果返回,并在 jquery 中检索该值,如下面的代码所示。

function LoadHotelDetails(data) {
    if (data) {
        $.each(data.ResultList, function (index, value) {
            $("#hotelName").val(value.HotelName);
            $("#nights").val(value.Nights);

            // this console.log print ["* EARLY CHECK-IN", " * LATE CHECK-OUT", " *- REFUND -*"] value to console.
            console.log(value.ExcursionList);

            $("#excursion").val(value.ExcursionList);

            $('#excursion').multiselect('refresh');

}

与 console.log 值一样,我得到 3 个选定值。但在我的下拉列表中,它只选择了一个值,如下面的屏幕截图所示。

如果有人可以在这里帮助我,我真的很感激。

【问题讨论】:

    标签: c# jquery asp.net-mvc jquery-multiselect


    【解决方案1】:

    注意: val 是使用下拉菜单的 value 属性设置值 例如

    <select>
     <option value="1" > option 1  </option>
     <option value="2" > option 2  </option>
     </select>
    

    在您的情况下,您需要使用 text() 设置值。

    $("#excursion").text(value.ExcursionList).multiselect('refresh');
    

    试试这个

    var tempArr = [];
    
     function LoadHotelDetails(data) {
    if (data) {
        $.each(data.ResultList, function (index, value) {
            $("#hotelName").val(value.HotelName);
            $("#nights").val(value.Nights);
    
            // this console.log print ["* EARLY CHECK-IN", " * LATE CHECK-OUT", " *- REFUND -*"] value to console.
            console.log(value.ExcursionList);
            tempArr.push(value.ExcursionList)
        }); //closing of each
    
            $("#excursion").text(tempArr).multiselect('refresh');
          //  $('#excursion').multiselect('refresh');
      tempArr = []; //empty temp array
        }
    

    【讨论】:

    • 感谢 Asif,但它也不起作用。在我的场景中,我选择了一个值。但在这种情况下,没有选择任何值。
    【解决方案2】:

    感谢您的帮助。我能够使用剃刀视图引擎和 C# 来解决这个问题。不使用 jquery。

     @Html.ListBoxFor(model => model.ExcursionList, ((IEnumerable<SelectListItem>)ViewBag.ExList), new { @class = "form-control", id = "excursion", multiple = "multiple" })
    

    通过正确选择下拉值来完美地工作

    【讨论】:

    • 附注 - ListBoxFor() 方法已经添加了 multiple = "multiple" - 您不需要再次添加它
    猜你喜欢
    • 2014-01-21
    • 2012-06-09
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多