我有一个简单的下拉列表,如下所示:
请选择,男,女
"请选择"默认选中(在创建时),但用户必须选择一个值,否则验证将失败。
如何在客户端实现此验证?模型中的[必需]似乎不起作用。
答案 0 :(得分:0)
如果您在编辑器中检查值,可能会有效。 像:
return (!content.Equals("Please Select");
答案 1 :(得分:0)
不幸的是我无法发表评论所以我将不得不使用此建议,请不要因为这个原因而拒绝投票。
但是你不能让下拉列表有两个选项:Male
和Female
,默认只是一个设置文本,因为默认是文本,而不是你可以使用的SelectedIndex
要验证。你可以看到它被设置为if (dropdownlist.SelectedIndex != -1)
。
答案 2 :(得分:0)
要进行验证, JavaScript 或 jQuery 将成为您的朋友。特别是对于验证,您可以通过几种方式实现。我将采取的方法是:
$('#drpExample').on('change', function () {
var content = $(this).val();
if(content === 'default') {
// Default Selection, Display Error.
}
});
正如你所看到的,jQuery 确实简化了这一点。
答案 3 :(得分:0)
您可以使用RegularExpression
属性,这样您就可以在客户端和服务器端进行验证。< / p>
[RegularExpression(@"\b(Male|Female)", ErrorMessage = "Please Select, Male, Female")]
public string Gender{ get; set; }
答案 4 :(得分:0)
public class yourentity
{
public SelectList GenderList { get; set; }
[Required]
public int gender { get; set; }
}
public ActionResult youraction()
{
yourentity a = new yourentity();
a.GenderList = new SelectList(new List<SelectListItem>
{
new SelectListItem { Text = "Male", Value = "1"},
new SelectListItem { Text = "Female", Value ="2"},
});
return View(a);
}
在你看来
@Html.DropdownListFor(m=>m.gender,m.GenderList ,"Select Gender")
@Html.ValidationMessagefor(m=>m.gender)