我正在使用MVC3和不显眼的验证来检查我的表单。用户可以从列表中选择设施,并输入审核名称。审计名称对于设施必须是唯一的,但每个设施都可以进行具有相同名称的审计。
模型看起来像这样:
[DisplayName("Audit Name")]
[Remote("CheckAuditName", "Audit", ErrorMessage = "The audit name has already been used for this Healthcare Facility", AdditionalFields = "HealthcareFacilitySysId")]
public string AuditName { get; set; }
[DisplayName("Healthcare Facility")]
public long HealthcareFacilitySysId { get; set; }
public IEnumerable<SelectListItem> AvailableHealthcareFacilities { get; set; }
远程验证工作正常,我在正确的时间得到了正确的信息,但我可以这样欺骗它:
在Facility列表的更改事件中,我尝试调用
$('form').validate().valid()
$('#AuditName').blur()
等但是当我手动调用它时,我无法获得验证远程方法的表单。它甚至可能吗?
答案 0 :(得分:2)
问题可能是验证的一些缓存。尝试这样的事情:
$("#HealthcareFacilitySysId").change(function () {
$("#AuditName").removeData("previousValue"); //clear cache
$("form").data('validator').element('#AuditName'); //retrigger remote call
$('#AuditName').blur()
});