为什么不通过jquery将布尔值分配给下拉列表?

时间:2018-07-23 10:08:33

标签: javascript jquery html asp.net-mvc dropdownlistfor

我有一个下拉列表,其中包含两个字段IsOwner和Title。

getline(cin, str)

我正在尝试通过jQuery为其分配布尔值'true',但并非如此。为什么?

@Html.DropDownListFor(Model => Model.IsOwner, new SelectList(ZahidCarWash.ViewModels.AddServicesViewModel.FillDropDownIsOwnerOptions(), "IsOwner", "Title"), new { 
  @class = "form-control" 
})

// function:
public static List<ZahidCarWash.Models.IsOwnerSelection> FillDropDownIsOwnerOptions() 
{
  List<ZahidCarWash.Models.IsOwnerSelection> ListOwnerOptions = new List<ZahidCarWash.Models.IsOwnerSelection>();
  ListOwnerOptions.Add(new ZahidCarWash.Models.IsOwnerSelection() 
  { 
    IsOwner = true, 
    Title = "Yes" 
  });
  ListOwnerOptions.Add(new ZahidCarWash.Models.IsOwnerSelection() { 
    IsOwner = false, 
    Title = "No" 
  });

  return ListOwnerOptions;
}

// class
public class IsOwnerSelection
{
  public bool IsOwner { get; set; }
  public string Title { get; set; }
}

4 个答案:

答案 0 :(得分:1)

首先,您需要在val()元素上设置select,而不是option

第二,当您对布尔值调用ToString()时(就像您为DropDownListFor()提供的类一样),第一个字符将转换为大写,例如。 TrueFalse。因此,在jQuery中设置值时,您需要匹配这种情况。试试这个:

$('#IsOwner').val('False');

答案 1 :(得分:0)

下拉列表项大写,因此

 $('#IsOwner').val('true'); //Will not work

 $('#IsOwner').val('True'); //Works

答案 2 :(得分:0)

$('#IsOwner').val('true');

$('#IsOwner').val('false');

它将在这里工作

答案 3 :(得分:-1)

我认为选项的值是字符串。所以您应该尝试将其指定为字符串。