我有一个模型,它有两个字段使用RequiredIf验证器(需要电话或电子邮件(:
[RequiredIf("Phone == null", ErrorMessage = "Either Phone or Email is required")]
public string Email { get; set; }
[RequiredIf("Email == null", ErrorMessage = "Either Phone or Email is required")]
public string Phone {get; set; }
问题是,在表单上,如果你点击第一个字段(电子邮件(,一旦你点击它,就会触发对Phone的验证,并显示错误消息。如果您开始键入,则错误消息将消失。
所要求的功能是,如果您在电子邮件中进行制表,则在您从两个有条件要求的字段中进行制表之前,验证不会启动,或者,在您单击提交按钮之前,验证也不会启动。
这可能使用RequiredIf注释吗?
<script>
ea.settings.apply({
dependencyTriggers: null // fire validation on submit only
});
ea.settings.apply({
dependencyTriggers: 'keyup' // fire on keyup
});
</script>
更多信息https://github.com/jwaliszko/ExpressiveAnnotations#how-控制相关字段验证的频率