C# 即使在验证失败时,ASP.NET Core也会在Submit上触发不引人注目的客户端验证表单
注意:这与.NET Core v2.0相关。你可能会找到相关的帖子,但它们没有解决我面临的问题 我正在应用验证,代码如下:C# 即使在验证失败时,ASP.NET Core也会在Submit上触发不引人注目的客户端验证表单,c#,jquery,asp.net,asp.net-core,unobtrusive-validation,C#,Jquery,Asp.net,Asp.net Core,Unobtrusive Validation,注意:这与.NET Core v2.0相关。你可能会找到相关的帖子,但它们没有解决我面临的问题 我正在应用验证,代码如下: 登录 好消息是它在客户端执行验证 但是,即使验证失败,也会触发form.onsubmit事件。因此,将调用myshowPleaseWait方法。我认为不应该调用它,因为由于验证失败,表单尚未提交 模型如下: public class LoginViewModel { [Required] public string Username {
登录
好消息是它在客户端执行验证
但是,即使验证失败,也会触发form.onsubmit
事件。因此,将调用myshowPleaseWait
方法。我认为不应该调用它,因为由于验证失败,表单尚未提交
模型如下:
public class LoginViewModel
{
[Required]
public string Username { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
非常感谢任何解决方案或解决方法。jQuery非干扰性验证和更高级别的jQuery验证插件不会阻止提交事件的发生,正如您所指出的,这意味着每当用户尝试提交表单时,都会调用您的
showplesewait()
函数
执行此操作的一个选项是,在尝试运行自己的代码之前,从showPleaseWait
函数中查询验证状态。下面是一个例子:
函数showPleaseWait(){
if($(“表单”).valid(){
//你的代码在这里。
}
}
此实现利用了jQuery验证的功能,该功能:
检查所选表单是否有效或所有选定元素是否有效
我刚刚在上面使用了一个简单的
$(“form”)
选择器,但是如果您在一个页面上有多个表单等,这可能需要更具体一些。不管原因如何,您都可以通过以下方式停止提交表单:$('form')。on('submit',e=>{e.stopPropagation();e.preventDefault();},false)
。当然,在您的情况下,只有在验证失败时才会发生这种情况。但是我还不熟悉asp.net core mvc的库来告诉您如何在事件处理程序中检查这一点。谢谢您-在使用JQuery Untrustive、asp.net core和mvc搜索了2个小时的正确解决方案后,提供了此帮助。