ASP.NET 带有表单标签的核心 - 在提交时验证表单并阻止提交
ASP.NET Core with form tag - validate form onsubmit and prevent submission
我有一个 ASP.NET Core 2.0 项目,我在其中使用表单标签进行提交。现在我想在我的表单提交中添加一些客户端验证。所以我在表单上使用 onsubmit
标签,如下所示:
<form id="formId" asp-action="ActionName" onsubmit="validationFunction(Event)">
我有这样的功能:
function validationFunction(e) {
//CheckStuff
e.preventDefault();
}
现在,当我提交表单时,该功能会正确触发,但 e.preventDefault()
不会停止提交。 return false
.
也没有
如何阻止提交完成?
PS。我知道当我完成验证时,我可能可以通过单击按钮并提交我的表单来处理这种情况,但我想知道为什么以上在 ASP.NET Core 中不起作用或者我缺少什么?
如果您想这样做 "correct" 并且最简单的方法是在 class 中设置验证,例如:
public class Movie
{
public int ID { get; set; }
[StringLength(60, MinimumLength = 3)]
[Required]
public string Title { get; set; }
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }
[Range(1, 100)]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
[RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
[Required]
[StringLength(30)]
public string Genre { get; set; }
[RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
[StringLength(5)]
[Required]
public string Rating { get; set; }
}
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/validation
或 JavaScript
甚至 HTML
应返回 onsubmit
属性并 return false
以防止提交。
<form id="formId" asp-action="ActionName" onsubmit="return validationFunction(Event)">
我有一个 ASP.NET Core 2.0 项目,我在其中使用表单标签进行提交。现在我想在我的表单提交中添加一些客户端验证。所以我在表单上使用 onsubmit
标签,如下所示:
<form id="formId" asp-action="ActionName" onsubmit="validationFunction(Event)">
我有这样的功能:
function validationFunction(e) {
//CheckStuff
e.preventDefault();
}
现在,当我提交表单时,该功能会正确触发,但 e.preventDefault()
不会停止提交。 return false
.
如何阻止提交完成?
PS。我知道当我完成验证时,我可能可以通过单击按钮并提交我的表单来处理这种情况,但我想知道为什么以上在 ASP.NET Core 中不起作用或者我缺少什么?
如果您想这样做 "correct" 并且最简单的方法是在 class 中设置验证,例如:
public class Movie
{
public int ID { get; set; }
[StringLength(60, MinimumLength = 3)]
[Required]
public string Title { get; set; }
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }
[Range(1, 100)]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
[RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
[Required]
[StringLength(30)]
public string Genre { get; set; }
[RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
[StringLength(5)]
[Required]
public string Rating { get; set; }
}
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/validation
或 JavaScript 甚至 HTML
应返回 onsubmit
属性并 return false
以防止提交。
<form id="formId" asp-action="ActionName" onsubmit="return validationFunction(Event)">