MVC 5 自定义验证在下一个选项卡之前验证
MVC 5 Custom Validation Validate Before Next 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;
}
}
我的自定义验证有效,但它仅在页面为 Submit/Post 后才验证。
提前致谢
您需要为其添加客户端验证。
这将在提交到服务器之前在浏览器中进行验证,以防止在表单无效时发帖。
指南:
http://www.itorian.com/2013/08/enabling-client-side-validation-on.html?m=1
要在更改选项卡时触发验证调用 valid()
if(!$("#form_id").valid())
// keep on same tab
这将验证表单和 return 其状态,在此基础上您可以 allow/disallow 他们更改选项卡并解决问题。
我希望在进入下一个选项卡之前触发自定义验证,或者如果自定义验证不符合其他字段的要求,则阻止进入下一个选项卡
型号
[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;
}
}
我的自定义验证有效,但它仅在页面为 Submit/Post 后才验证。
提前致谢
您需要为其添加客户端验证。
这将在提交到服务器之前在浏览器中进行验证,以防止在表单无效时发帖。
指南:
http://www.itorian.com/2013/08/enabling-client-side-validation-on.html?m=1
要在更改选项卡时触发验证调用 valid()
if(!$("#form_id").valid())
// keep on same tab
这将验证表单和 return 其状态,在此基础上您可以 allow/disallow 他们更改选项卡并解决问题。