Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery MVC3在客户端验证后但在提交之前可用吗?_Jquery_Validation_Asp.net Mvc 3_Jquery Validate_Unobtrusive Validation - Fatal编程技术网

Jquery MVC3在客户端验证后但在提交之前可用吗?

Jquery MVC3在客户端验证后但在提交之前可用吗?,jquery,validation,asp.net-mvc-3,jquery-validate,unobtrusive-validation,Jquery,Validation,Asp.net Mvc 3,Jquery Validate,Unobtrusive Validation,使用jquery.validate()库和ASP MVC3 RTMjquery.validate.ubobstrusive库,我想知道是否有一个可用的钩子,可以在验证后但在提交实际表单之前插入一些附加逻辑 换句话说:表单正在提交,验证正在运行(不管它通常做什么),验证没有理由停止表单提交,在这里运行我的代码,然后正常提交 我知道我可以处理表单的submit事件并执行以下操作: $('#MyForm').submit(function() { if (!$(this).valid())

使用
jquery.validate
()库和ASP MVC3 RTM
jquery.validate.ubobstrusive
库,我想知道是否有一个可用的钩子,可以在验证后但在提交实际表单之前插入一些附加逻辑

换句话说:表单正在提交,验证正在运行(不管它通常做什么),验证没有理由停止表单提交,在这里运行我的代码,然后正常提交

我知道我可以处理表单的
submit
事件并执行以下操作:

$('#MyForm').submit(function() {
    if (!$(this).valid())
       return false;

    // My Code Here
}
。。。我自己调用验证,如果成功,则输入我自己的逻辑。但我觉得这太脏了。我怎么知道这是jquery.validate的提交处理程序中唯一的代码?即使这是唯一正在运行的代码,我真的想复制它吗?我宁愿不必在提交时镜像验证库所做的事情;我只想在验证发生之后,但在表单提交之前注入自己——就像绑定到虚构的
$('#MyForm')。lastPossibleMontBeforeSubmit(function(){//mycode Here})
事件


有没有关于“我的代码在这里”应该放在哪里的指针?

我相信你可以这样做

$(document).ready(function() {
    $("#MyFormform").validator().bind("onSuccess", function(e, els) {
         //Code to run after validation succeeds
    }
});

我相信你可以这样做

$(document).ready(function() {
    $("#MyFormform").validator().bind("onSuccess", function(e, els) {
         //Code to run after validation succeeds
    }
});

如果只是使用jquery.validate,则可以像下面这样使用成功回调:

$(function () {
    $('#MyForm').validate({
       success : function(error) {
           // additional logic
       }
    });
});
$(function () {
            var settings = $('form').data('validator').settings,
                originalSuccess = settings.success;
            settings.success = function (error) {
                originalSuccess(error);
                // additional logic
            };
        });
但是,由于您使用的是jquery.validate.ubobtrusive,很遗憾,这无法直接完成,因为jquery.validate.ubobtrusive在内部隐藏了对.validate的调用

相反,您需要获取jquery.validate.ubobtrusive传递给的设置/选项对象。validate,捕获它的现有成功处理程序,并将其替换为您自己的成功处理程序,该成功处理程序调用原始的成功处理程序,并且具有以下附加功能:

$(function () {
    $('#MyForm').validate({
       success : function(error) {
           // additional logic
       }
    });
});
$(function () {
            var settings = $('form').data('validator').settings,
                originalSuccess = settings.success;
            settings.success = function (error) {
                originalSuccess(error);
                // additional logic
            };
        });

如果只是使用jquery.validate,则可以像下面这样使用成功回调:

$(function () {
    $('#MyForm').validate({
       success : function(error) {
           // additional logic
       }
    });
});
$(function () {
            var settings = $('form').data('validator').settings,
                originalSuccess = settings.success;
            settings.success = function (error) {
                originalSuccess(error);
                // additional logic
            };
        });
但是,由于您使用的是jquery.validate.ubobtrusive,很遗憾,这无法直接完成,因为jquery.validate.ubobtrusive在内部隐藏了对.validate的调用

相反,您需要获取jquery.validate.ubobtrusive传递给的设置/选项对象。validate,捕获它的现有成功处理程序,并将其替换为您自己的成功处理程序,该成功处理程序调用原始的成功处理程序,并且具有以下附加功能:

$(function () {
    $('#MyForm').validate({
       success : function(error) {
           // additional logic
       }
    });
});
$(function () {
            var settings = $('form').data('validator').settings,
                originalSuccess = settings.success;
            settings.success = function (error) {
                originalSuccess(error);
                // additional logic
            };
        });

不确定您在这里引用的是什么框架。您是否有指向此onSuccess方法文档的链接?只执行$('#MyForm').validator()是一个错误,因此我不确定您在这里得到了什么。您确定这是针对jquery.validate/jquery.validate.ubobstrusive的吗?不确定您在这里引用的是什么框架。您是否有指向此onSuccess方法文档的链接?只执行$('#MyForm').validator()是一个错误,因此我不确定您在这里得到了什么。您确定这是针对jquery.validate/jquery.validate.ubobursive的吗?