1

我曾经像这样进行ajax调用:

        form.bind("submit", function(e) {
            e.preventDefault();
            form.ajaxSpin("large");
            form.ajaxSubmit({
                success: function(result) {
                    if (!b.ajaxFailure(result, true)) {
                        if(b.validateForm(form,result)) {
                            console.log(result); // TODO: something?
                        }
                    }
                },
                complete: function() {
                    form.ajaxSpin(false);
                }
            });
        });

到目前为止,我的设计正在逐步增强。
现在我也想在客户端实现模型验证,然后再发出实际请求。

jquery.validation.js在项目中包含了插件以及最新的jquery.validation.unobtrusive.js脚本。

然后我将代码更改为:

        form.validate({
            submitHandler: function() {
                form.ajaxSpin("large");
                form.ajaxSubmit({
                    success: function(result) {
                        if (!b.ajaxFailure(result, true)) {
                            if (b.validateForm(form, result)) {
                                console.log(result); // TODO: something?
                            }
                        }
                    },
                    complete: function() {
                        form.ajaxSpin(false);
                    }
                });
            }
        });

我认为,这将完全相同,除非它不会发出请求,除非首先通过验证。

验证方面完全符合预期,使用模型中的数据属性 mvc 设置到我的视图的 DOM 中。

这失败的部分,我不知道为什么,是我回到不是 ajax 的状态。页面只是重新加载,我submitHandler从不触发(与此链接的建议相反)

submitHandler我为( onSuccess,等)尝试了其他一些常用名称,success但它们似乎都不起作用。

4

0 回答 0