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



我有一个dropdownlist,它有两个字段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);

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

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

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

下拉列表项目大写,因此

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

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

它将在这里工作

我认为选项的值是字符串。所以你应该试着把赋值作为一个字符串。

最新更新