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

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

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

@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; }
}

我试图通过jQuery为它分配一个布尔值'true',但事实并非如此。为什么?

$("#IsOwner option:selected").val(false);
javascript jquery html asp.net-mvc dropdownlistfor
3个回答
1
投票

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

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

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

0
投票

下拉列表项是大写的

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

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

-1
投票

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

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