ASP.Net 核心客户端验证:是否有"验证成功"的 DOM 事件?



我有一个ASP.Net Core Razor页面,它使用Bootstrap并进行客户端验证。

表单如下:

<form method="post" class="needs-validation" novalidate>
...

_ValidationScriptsPartial.cshtml如下所示:

<environment include="Development">
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
...

一切都很好。如果用户未能输入所需字段或输入的数字超过了最大值,则表单将不会提交,违规字段将以红色突出显示。

Q: 是否存在在";验证成功";?

我想在我知道表单是";OK";,但在它实际发布到服务器之前。

提前谢谢!

如果您想要快速交钥匙解决方案,只需包含jQuery Validation Plugin即可。valid条件只有在有效时才返回true。

答案:然后,您可以通过发送data structurecontrol来向其发送rxJs-subscribe,以使用此jquery.observable插件获取事件

以下是Jquery Valid的工作原理:

形式:


$("form").valid(); 
// or
if($("form").valid()) {
//VALID continue
}

控制:

$("[name='CountyOfBirth']").valid(); // RETURNS true/false

提交时:您也可以通过检查表单提交来获得有效事件的类似结果

$("form").submit(function() {
if($(this).valid()) {
//VALID
} else {
//ERROR
}
});

您可以将jQuery Unobtrusive Ajax与剃刀视图中的表单一起使用。

首先,您需要包含jQuery Unobtrusive Ajax脚本:

npm i jquery-ajax-unobtrusive -D  (or --save-dev)

其次,您需要通过添加特定的自定义data-属性来在表单上启用不引人注目的ajax:

<form method="post" class="needs-validation" novalidate
data-ajax="true" data-ajax-method="post"
data-ajax-begin="onFormBegin"
data-ajax-complete="onFormComplete">

您还可以使用其他属性。


在这里,您可以注册回调,例如,在表单提交的开始和完成时:

@section scripts {
<script type="text/javascript">
$(function() {
window.onFormBegin = function() {
// This is the place where you can execute some Javascript 
// after you know the form is "OK", but before it's actually 
// POSTED to the server.
};
window.onFormComplete = function(request, status) {
// ...
};
});
</script>
}