Javascript 在jQuery中使用e.preventDefault()´;t让[必需的]MVC工作
我确实创建了一个带有ViewModel的MVC应用程序,它的所有属性都是[必需的],并且还创建了它的应有视图,我的问题是我需要从提交按钮捕获点击事件,以便进行一些验证,因此我决定使用jQuery以这种方式捕获点击事件:Javascript 在jQuery中使用e.preventDefault()´;t让[必需的]MVC工作,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我确实创建了一个带有ViewModel的MVC应用程序,它的所有属性都是[必需的],并且还创建了它的应有视图,我的问题是我需要从提交按钮捕获点击事件,以便进行一些验证,因此我决定使用jQuery以这种方式捕获点击事件: $("#IngresarInfo").click(function (e) { e.preventDefault(); $("#idISSSBuscar").rules("remove", "required");
$("#IngresarInfo").click(function (e) {
e.preventDefault();
$("#idISSSBuscar").rules("remove", "required");
$.ajax({ ... some code here
但是如果我使用e.preventDefault()代码>验证[required]确实有效(不显示任何错误消息),我想要的是首先验证所有表单输入是否完成,然后进行验证
您能告诉我我的代码有什么问题吗?是的,当调用e.PreventDefault()时,默认进程将停止。i、 默认情况下,不会调用服务器端控制器操作
来自jQuery文档
如果调用此方法,则不会调用事件的默认操作
触发
如果您想在调用e.PreventDefault后继续执行控制器操作,您需要自己提交表单
另一个问题。为什么要这样做?如果让MVC对viewmodel进行默认验证,则可以在post操作中查找Model.IsValid并返回带有验证错误的原始视图
看起来你在试图模仿这种行为,但是我不知道你从中得到了什么。我想要的是首先验证所有表单输入是否完成,然后进行验证。
=>你这是什么意思?我想要的是首先验证所有表单输入是否完成,然后进行验证
,所以你想要进行验证在进行验证之前。。。?这没道理我很抱歉afraid@RoryMcCrossan我确实写过:我需要从提交按钮捕获点击事件,以便进行一些验证,明白吗?@Pablo Tobar,看来您希望利用HTML5提供的验证以及您自己的自定义验证。您可以做的是创建一个“页面嗅探器”函数,单击该函数将搜索由浏览器生成的任何错误元素。如果存在错误,不要触发自定义验证,但是如果没有错误发生,请进行验证。如果您想挖掘现有的验证体系结构,您可能应该考虑创建自己的自定义属性:谢谢,我想这样做,因为一个队友做到了,我用我的逻辑写了完全相同的代码,但不起作用