Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 验证消息不会从级联控件MVC中消失_Jquery_Asp.net Mvc 4_Unobtrusive Validation - Fatal编程技术网

Jquery 验证消息不会从级联控件MVC中消失

Jquery 验证消息不会从级联控件MVC中消失,jquery,asp.net-mvc-4,unobtrusive-validation,Jquery,Asp.net Mvc 4,Unobtrusive Validation,这是一个相当烦人的问题。我有一个绑定到模型的表单。有一些必填字段。它们中的大多数依赖于一个下拉列表。如果我加载页面并直接单击Submit按钮,则会显示所有验证消息。现在,如果我从下拉列表中选择一个值,“B”和“C”下拉列表的值将自动填充。但是bot的验证消息仍然可见。感谢您的帮助 以下是我的html: <div>@Html.DropDownListFor(model => model.A, (IEnumerable<SelectListItem>)this.View

这是一个相当烦人的问题。我有一个绑定到模型的表单。有一些必填字段。它们中的大多数依赖于一个下拉列表。如果我加载页面并直接单击Submit按钮,则会显示所有验证消息。现在,如果我从下拉列表中选择一个值,“B”和“C”下拉列表的值将自动填充。但是bot的验证消息仍然可见。感谢您的帮助

以下是我的html:

<div>@Html.DropDownListFor(model => model.A, (IEnumerable<SelectListItem>)this.ViewBag.Breed, "Select Breed", new { @class = "width100" })</div>
<div class="eror_msg">@Html.ValidationMessageFor(model => model.A)</div>

<div>@Html.DropDownListFor(model => model.B, Enumerable.Empty<SelectListItem>(), "Select Skin Color", new { @class = "width100" })</div>
<div class="eror_msg">@Html.ValidationMessageFor(model => model.B)</div>

<div>@Html.DropDownListFor(model => model.C, Enumerable.Empty<SelectListItem>(), "Select Eye Color", new { @class = "width100" })</div>
<div class="eror_msg">@Html.ValidationMessageFor(model => model.C)</div>
当我从A中选择值时,B和C的值会根据某些条件和业务逻辑自动填充和选择。两者的
change()
事件都已触发。但只有A的验证信息消失了。B和C的验证消息仍然可见


供您参考,此视图是局部视图

你有一些代码来演示这个问题吗?请看,您需要显示您的代码,但是假设您的第二个dropdownlist是使用jquery填充的,那么您需要触发第二个dropdownlist
.change()
事件。当用户单击submit按钮本身时,为什么不检查dropdownlist是否已选择值?我正在触发change()事件。但不起作用。消息仍然可见。@StephenMuecke请查看示例代码。
$(document).ready(function(){
 $('#A').change(function(){
    $.ajax({
     success: function(data){
     // building html to bind to B and C
     $('#B').html(htmlforb).val(2).trigger('change');
     $('#C').html(htmlforc).val(5).trigger('change');       
  }
    });
  });
});