繁体   English   中英

文本框验证根据下拉值起作用

[英]Textbox Validation Works according to dropdown value

我有一个下拉菜单,其中有3个可用选项:

  • '取消'
  • “推迟”
  • '其他'

我希望如果用户选择“其他”选项,则注释文本框为必填项,否则注释文本框不是必填项,

这是我在View模型中的验证代码

[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" })

仅当选择其他时,如何使评论变为强制性?

您可以在post方法中进行此操作(如果需要)

Public ActionResult AssumeThisAsYourPostMethod(YourModel modelObject)
{
  if(modelObject.Reason=="Other" && String.IsNullOrEmpty(modelObject.Comment) )
  {
    ModelState.AddModelError("Comment","Your Validation Message");
    return View("YourViewName");
  }
}

在更改事件上使用jQuery,如果select的值为“ Other”,则将必需的属性添加到注释框。

$("body").on('change', "#Reason", function () {
   var Reason= $(this).val().trim() ;
   if (Reason == 'Other')
    {
     $("input[name = Comment]").prop('required',true);
    } 
   });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM