如何在选择列表发生更改时触发远程验证
本文关键字:程验证 验证 选择 列表 | 更新日期: 2023-09-27 18:28:29
我使用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; }
远程验证正在工作,我在正确的时间得到了正确的消息,但我可以这样愚弄它:
- 选择设施1
- 输入已用于协作室2的审核名称
- 选择设施2
- 提交表格
在设施列表的更改事件中,我尝试调用
$('form').validate().valid()
$('#AuditName').blur()
等等,但当我手动调用远程方法时,我无法获得验证远程方法的表单。这可能吗?
问题可能是验证中的一些缓存。试试这样的东西:
$("#HealthcareFacilitySysId").change(function () {
$("#AuditName").removeData("previousValue"); //clear cache
$("form").data('validator').element('#AuditName'); //retrigger remote call
$('#AuditName').blur()
});