Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 即使在验证失败时,ASP.NET Core也会在Submit上触发不引人注目的客户端验证表单_C#_Jquery_Asp.net_Asp.net Core_Unobtrusive Validation - Fatal编程技术网

C# 即使在验证失败时,ASP.NET Core也会在Submit上触发不引人注目的客户端验证表单

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 {

注意:这与.NET Core v2.0相关。你可能会找到相关的帖子,但它们没有解决我面临的问题

我正在应用验证,代码如下:


登录
好消息是它在客户端执行验证

但是,即使验证失败,也会触发
form.onsubmit
事件。因此,将调用my
showPleaseWait
方法。我认为不应该调用它,因为由于验证失败,表单尚未提交

模型如下:

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个小时的正确解决方案后,提供了此帮助。