Asp.net mvc 3 ASP.NET MVC 3:如果目标字段被禁用,则客户端验证消息随后会出现
我有一个表单,其中有一个字段(字段a),如果在下拉列表中选择了选项1,则该字段需要为空;如果选择了选项2,则该字段是必需的。我有一些javascript在选择选项1时清除和禁用字段A 我已将Simon Ince的RequiredIf属性应用于模型中的字段A,具体取决于选项1,并且效果良好。这不是问题所在 以下是导致问题的事件顺序:Asp.net mvc 3 ASP.NET MVC 3:如果目标字段被禁用,则客户端验证消息随后会出现,asp.net-mvc-3,validation,Asp.net Mvc 3,Validation,我有一个表单,其中有一个字段(字段a),如果在下拉列表中选择了选项1,则该字段需要为空;如果选择了选项2,则该字段是必需的。我有一些javascript在选择选项1时清除和禁用字段A 我已将Simon Ince的RequiredIf属性应用于模型中的字段A,具体取决于选项1,并且效果良好。这不是问题所在 以下是导致问题的事件顺序: 用户选择了选项2(因此字段A是必需的),字段A为空 用户点击保存。验证消息按字段A显示,并显示在验证摘要中。一切都很好 用户更改为选项1。字段A变为禁用状态 用户点击
除了通过js和jQuery清除消息SPAN标记外,还有什么方法可以解决这个问题吗 由于验证要求正在更改,您需要进行验证,然后更新所有错误消息。由于问题与dropdownlist上所选项目的更改有关,请添加以下内容:
$("#myDropDown").live("change", function() { // assumes dropdownlist has id of 'myDropDown'
$("form").validate().form(); // form() causes error messages to update
});
由于验证要求正在更改,因此需要进行验证,然后更新所有错误消息。由于问题与dropdownlist上所选项目的更改有关,请添加以下内容:
$("#myDropDown").live("change", function() { // assumes dropdownlist has id of 'myDropDown'
$("form").validate().form(); // form() causes error messages to update
});
非常感谢。我试试看。但是,上面步骤4中的第二个submit按钮是否会产生重新运行验证的效果?我已经知道,这不会导致剩余的验证消息消失。埃塔:不,不幸的是,你的建议没有让信息消失。它仍然在附近。呸!你的意思是在我禁用字段A之前重新进行验证!是的,这就解决了!非常感谢。非常感谢。我试试看。但是,上面步骤4中的第二个submit按钮是否会产生重新运行验证的效果?我已经知道,这不会导致剩余的验证消息消失。埃塔:不,不幸的是,你的建议没有让信息消失。它仍然在附近。呸!你的意思是在我禁用字段A之前重新进行验证!是的,这就解决了!非常感谢。