首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC3发布了不引人注目的客户验证,但在提交钩子之前可用?

MVC3发布了不引人注目的客户验证,但在提交钩子之前可用?
EN

Stack Overflow用户
提问于 2011-06-13 02:44:42
回答 2查看 1.5K关注 0票数 2

使用jquery.validate (1.8.1)库和ASP MVC3 RTM jquery.validate.ubobtrusive库,我想知道是否有一个钩子可以在提交实际表单之前注入一些额外的逻辑来进行后验证。

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

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

代码语言:javascript
运行
复制
$('#MyForm').submit(function() {
    if (!$(this).valid())
       return false;

    // My Code Here
}

..。我自己调用验证,如果成功的话,输入我自己的逻辑。但我觉得这很脏。我如何知道这是jquery.Value的提交处理程序中唯一的代码?即使这是唯一运行的代码,我真的想复制它吗?我宁愿不必反映验证库在提交时所做的事情;我只想在验证发生之后,但在表单提交之前注入自己--就像绑定到一个神秘的$('#MyForm').lastPossibleMomentBeforeSubmit(function() { // My Code Here });事件。

关于这个“我的代码”应该去哪里,有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-22 15:26:23

如果您只是在使用jquery.validate,您可以使用以下的成功调用:

代码语言:javascript
运行
复制
$(function () {
    $('#MyForm').validate({
       success : function(error) {
           // additional logic
       }
    });
});

但是,由于您很遗憾地使用了jquery.validate.ubobtrusive,所以不能直接这样做,因为jquery.validate.ubobtrusive隐藏了对.validate的内部调用。

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

代码语言:javascript
运行
复制
$(function () {
            var settings = $('form').data('validator').settings,
                originalSuccess = settings.success;
            settings.success = function (error) {
                originalSuccess(error);
                // additional logic
            };
        });
票数 1
EN

Stack Overflow用户

发布于 2011-06-13 04:19:35

我相信你能做这样的事。

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("#MyFormform").validator().bind("onSuccess", function(e, els) {
         //Code to run after validation succeeds
    }
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6326222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档