我有一个表单,如果在下拉列表中选择了选项1,则该字段(字段A)需要为空,如果选择了选项2,则需要该表单。我有一些javascript,当选择选项1时清除并禁用字段A.
我将Simon Ince的RequiredIf属性应用于模型中的字段A,取决于选项1,并且它运行良好。那不是问题。
以下是导致问题的事件序列:
我从中得出结论,RequiredIf验证正在运行(并且字段A正在通过验证),但旧的验证消息仍然存在。我不想要的。
顺便说一句,这一切都是客户端的。
如果该字段未被禁用,则一切都按预期工作,但我希望它被禁用而不是可编辑但“必须为空”。
除了通过js和jQuery清除SPAN标记消息之外,有没有办法解决这个问题?
答案 0 :(得分:1)
由于验证要求正在发生变化,因此您需要进行验证,然后更新所有错误消息。由于该问题与下拉列表中所选项目的更改有关,请添加以下内容:
$("#myDropDown").live("change", function() { // assumes dropdownlist has id of 'myDropDown'
$("form").validate().form(); // form() causes error messages to update
});