我想在下一个Tab之前触发自定义验证,或者如果自定义验证不符合其他字段
的要求,则阻止转到下一个Tab模型
[EnsureMinimumElementsAttributeDropOff(ErrorMessage = "You must supply at least one Drop Off Date")]
public virtual List<DropOffDate> DropOffDates { get; set; }
自定义验证
public class EnsureMinimumElementsAttributeDropOff : ValidationAttribute
{
public override bool IsValid(object value)
{
var list = value as List<DropOffDate>;
if (list != null)
{
foreach (var item in list)
{
// check if at least 1 row is filled for Drop-off Date by user
if (!string.IsNullOrEmpty(item.Date) && !string.IsNullOrEmpty(item.StartTime)
&& !string.IsNullOrEmpty(item.EndTime))
return true;
}
}
return false;
}
}
我的自定义验证有效,但只在页面提交/发布后才会生效。
在此先感谢
答案 0 :(得分:0)
您需要向其添加客户端验证。
这将在提交到服务器之前在浏览器中进行验证,在表单无效时阻止发布。
指南:
Create a Secure Session Management System in PHP and MySQL
http://www.itorian.com/2013/08/enabling-client-side-validation-on.html?m=1
要在更改标签时触发验证,请调用valid()
if(!$("#form_id").valid())
// keep on same tab
这将验证表单并返回其状态,基于您可以允许/禁止他们更改选项卡并解决问题。