Javascript 使用Jquery的AJAX请求,无需页面刷新,同时使用对象和回调选项

Javascript 使用Jquery的AJAX请求,无需页面刷新,同时使用对象和回调选项,javascript,jquery,jquery-forms-plugin,Javascript,Jquery,Jquery Forms Plugin,我正在尝试使用Jquery表单插件以及validate()验证和发布表单数据 我尝试过在没有验证的情况下发送数据,效果很好。例如: $('#encodeForm').ajaxForm(function(res) { $('#result').html(res.data); console.log(res); return false; }); 返回false会阻止页面导航到服务器响应 但是,当我用一个选项对象替换函数时,上述操作失败: $('#encodeForm').

我正在尝试使用Jquery表单插件以及validate()验证和发布表单数据

我尝试过在没有验证的情况下发送数据,效果很好。例如:

$('#encodeForm').ajaxForm(function(res) {
    $('#result').html(res.data);
    console.log(res);
    return false;
});
返回false
会阻止页面导航到服务器响应

但是,当我用一个选项对象替换函数时,上述操作失败:

$('#encodeForm').ajaxForm({ ......, success : function() { return false; } });
关于传递options对象,如何防止页面导航(改为AJAX响应?)

尝试的方法:

  • 验证回调中的嵌套表单(当前)

  • 表单回调中的嵌套验证(失败)

  • 使用form.submit关闭表单(失败)


  • 在反复使用代码和亚伯拉罕的笔记之后,以下内容对我起了作用:

            $('#decodeForm').validate({
                // rules here ....
    
    
                }
            });
    
    
        $('#decodeForm').ajaxForm({
    
            beforeSubmit : function() {
    
                console.log('FORM: ' + $('#decodeForm').valid());
    
                //block if false
                return $('#decodeForm').valid();
    
            },
    
            success : function(res) {
                if (res.err) {
                    console.log('ERROR: ' + res.err);
    
                }
                // do something with the data
    
            }
    
        });
    

    注意:如果规则无效,AJAX查询似乎无法工作。如果您从那里使用函数,请确保包含
    additional methods.min.js
    文件。

    在您发布的中,他们不会在任何地方调用
    return false
    。你确定有必要吗?将您的代码与我链接的示例中的代码进行比较。我已经从您的问题中删除了标记,因为我在OP中完全看不到关于此插件的任何内容。如果我错了,那么你的
    .validate()
    代码在哪里?@Abraham是的,这很有效。我认为这不值得否决——使用了两个模块的实现,并且彼此非常相似。谢谢。@Sparky不,这也是关于jquery验证插件的。我正在使用其中的两个。有人知道浏览器对Jquery表单插件的支持吗?谢谢,我试过了,但是它似乎没有发送文件负载。对我有效的方法是使用ajaxform(),并单独使用validate()。
            $('#decodeForm').validate({
                // rules here ....
    
    
                }
            });
    
    
        $('#decodeForm').ajaxForm({
    
            beforeSubmit : function() {
    
                console.log('FORM: ' + $('#decodeForm').valid());
    
                //block if false
                return $('#decodeForm').valid();
    
            },
    
            success : function(res) {
                if (res.err) {
                    console.log('ERROR: ' + res.err);
    
                }
                // do something with the data
    
            }
    
        });