ASP.Net Core 客户端验证:是否有“验证成功”DOM 事件?

问题描述 投票:0回答:2

我有一个 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>
    ...

一切正常。如果用户未能输入必填字段或输入的数字超过最大值,则表单将不会提交,并且有问题的字段会以红色突出显示。

“验证成功”时是否触发了 DOM 事件?

我想在知道表单“正常”之后但在它实际发布到服务器之前执行一些 JavaScript。

c# asp.net-core bootstrap-4 asp.net-core-mvc unobtrusive-validation
2个回答
1
投票

如果您想要一个快速交钥匙解决方案,您只需添加

jQuery Validation Plugin
即可。仅当 valid 条件有效时才返回 true。

答案:然后,您可以通过发送

rxJs-subscribe
data structure
到它,以使用此
jquery.observable
插件 获取事件。

以下是 Jquery Valid 的工作原理:

形式:

control
控制:

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

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

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



0
投票
Query Unobtrusive Ajax

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

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

其次,您需要通过添加特定的自定义 
npm i jquery-ajax-unobtrusive -D (or --save-dev)

属性来在表单上启用不显眼的 ajax:

data-

还有
其他属性

您可以使用。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.