在 jQuery 中使用 e.preventDefault() 不允许 [必需] MVC 工作



>我确实创建了一个带有ViewModel的MVC C#应用程序,所有属性都是必需的],并且还创建了应有的视图,我的问题是我需要从提交按钮捕获单击事件以进行一些验证,所以我决定使用jQuery以这种方式捕获单击事件:

$("#IngresarInfo").click(function (e) {
e.preventDefault();
$("#idISSSBuscar").rules("remove", "required");
$.ajax({ ... some code here

但是如果我使用e.preventDefault();验证 [必需] 确实有效(不显示任何错误消息(,我想要的是首先验证所有表单输入是否完成,然后进行验证。

你能告诉我我的代码有什么问题吗?

是的,当调用 e.PreventDefault(( 时,默认进程将停止。 即默认情况下不会调用您的服务器端控制器操作。

来自 jQuery 文档

如果调用此方法,则事件的默认操作将不是 引发。

如果您想在调用 e.PreventDefault 后继续执行控制器操作,则需要自己提交表单。

另一个问题。为什么要这样做? 如果让 MVC 对视图模型进行默认验证,则可以在发布操作中查找 Model.IsValid,并返回包含验证错误的原始视图。

似乎您正在尝试模仿这种确切的行为,但我不知道您从中获得什么。

最新更新