在ASP.NET Core中,非侵入式客户端验证表单在验证失败时仍会触发提交事件的问题可以通过以下解决方法来解决:
使用jQuery的submit
事件来替代默认的表单提交事件。
在客户端验证失败时,阻止默认的表单提交事件。
下面是一个示例代码:
HTML代码:
JavaScript代码:
$(function() {
$("#myForm").submit(function(e) {
e.preventDefault(); // 阻止默认的表单提交事件
if ($("#myForm").valid()) {
// 执行表单提交操作
this.submit();
}
});
});
在上面的代码中,我们使用jQuery的submit
事件来捕获表单提交事件,并使用e.preventDefault()
方法来阻止默认的表单提交。然后,我们使用$("#myForm").valid()
方法来检查表单是否通过了客户端验证。如果通过了验证,则调用this.submit()
方法来执行实际的表单提交操作。
请注意,这个解决方法依赖于jQuery库,因此确保在使用之前已经将jQuery库添加到项目中。此外,还需要在引入jQuery库之后添加上述的JavaScript代码。