我有一个下拉列表,其中包含两个字段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; }
}
答案 0 :(得分:1)
首先,您需要在val()
元素上设置select
,而不是option
。
第二,当您对布尔值调用ToString()
时(就像您为DropDownListFor()
提供的类一样),第一个字符将转换为大写,例如。 True
或False
。因此,在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)
我认为选项的值是字符串。所以您应该尝试将其指定为字符串。