我有一个下拉列表,其中有3个选项可用:
我希望如果用户选择“其他”选项,则“注释”文本框是必需的,否则“注释”文本框不是必需的,
以下是我在View Model
中的验证码[Required(ErrorMessage="Please Enter Comment")]
public string Comment { get; set; }
这是我在视图中的下拉列表和验证码
@Html.DropDownList("Reason", new List<SelectListItem>()
{
new SelectListItem() { Text= "Event Cancelled", Value = "Cancelled" },
new SelectListItem() { Text= "Event PostPoned", Value = "PostPoned" },
new SelectListItem() { Text= "Other", Value = "Other" }
}, "--Select Cancellation Reason --", new { @class = "form-control"})
@Html.ValidationMessageFor(model => model.Reason, "", new { @class = "text-danger" })
如果只在选择其他评论时,如何强制进行评论?
答案 0 :(得分:0)
您可以在post方法中执行此操作(如果需要)
Public ActionResult AssumeThisAsYourPostMethod(YourModel modelObject)
{
if(modelObject.Reason=="Other" && String.IsNullOrEmpty(modelObject.Comment) )
{
ModelState.AddModelError("Comment","Your Validation Message");
return View("YourViewName");
}
}
答案 1 :(得分:0)
在更改事件上使用jQuery,如果select的值为“Other”,则将所需属性添加到注释框。
$("body").on('change', "#Reason", function () {
var Reason= $(this).val().trim() ;
if (Reason == 'Other')
{
$("input[name = Comment]").prop('required',true);
}
});