Jquery plugins 获取$.post,在多个表单上使用validate插件,而不使用单独的函数

Jquery plugins 获取$.post,在多个表单上使用validate插件,而不使用单独的函数,jquery-plugins,jquery,jquery-validate,validation,Jquery Plugins,Jquery,Jquery Validate,Validation,在粉丝网站上,我正在做 我有几张表格(两张自动取款机)。我使用$.post查找提交的表单。使用.html()提交表单并显示表单最初所在的页面结果 我的下一步是使用验证器,它工作得很好,但我不知道如何把2放在一起 submitHandler:function(form){}似乎是其提交方式的设置。但是,我无法使用我的$.post函数实现此功能,也无法找出正在处理的表单 如果我保留验证插件的默认值,如果没有错误,它会将您发送到页面。它所使用的ajax插件并不是我想要的。下面是我的$.post功能 表

在粉丝网站上,我正在做
我有几张表格(两张自动取款机)。我使用$.post查找提交的表单。使用.html()提交表单并显示表单最初所在的页面结果

我的下一步是使用验证器,它工作得很好,但我不知道如何把2放在一起

submitHandler:function(form){}
似乎是其提交方式的设置。但是,我无法使用我的
$.post
函数实现此功能,也无法找出正在处理的表单

如果我保留验证插件的默认值,如果没有错误,它会将您发送到页面。它所使用的ajax插件并不是我想要的。下面是我的
$.post
功能

表单验证:

//ajax post
$("form").submit(function(event)
{
    event.preventDefault();//stop from submiting
            //set needed variables
    var $form = $(this)
    var $div = $form.parent("div")
            $url = $form.attr("action");
            //submit via post and put results in div
    $.post( $url, $form.serialize() , function(data) 
    { $div.html(data) })

})

验证插件

您认为
submitHandler
是正确的回调。然而,在将它与多种表单一起使用时,我遇到了一些有趣的问题(就像您正在尝试的那样)。例如,在此代码中:

$("#form1, #form2").validate({
    submitHandler: function(form) {
        alert(form.action);
        alert(form.id);
    }
});
submitHandler
回调没有得到正确的参数(它总是得到
#form1
)。我相信这实际上是jQueryValidate中的一个bug(所以我将其归档)

无论如何,一个不错的解决方法是将validate调用包装到
。each()


示例:

那么这篇文章实际上没有通过吗?是否未调用
submit
事件处理程序?到底出了什么问题?我无法让它与valation插件一起工作。当我按“提交”键时,它根本不起作用。如果我拿出定义变量的方法,它将转到带有post的页面。我想要的是通过ajax发布信息,并将php页面的结果显示在一个div中。换句话说,php页面将处理信息并回显一些我想放置在表单位置的html。谢谢。我有一个小问题。有东西在冒泡。。。我必须点击提交两次,它才能工作。$(“表单”).each(function(){$(this).validate({submitHandler:function(form){/*'form'具有正确的值//在此处执行AJAX调用*/$(“form”).submit(function(event){event.preventDefault();var$form=$(this)var$div=$form.parent(“div”)$.post(form.action,$form.serialize(),function(data){$div.html(数据)}}}};});您需要将
$.post
直接放在
submitHandler
中:如果我这样做,则默认情况下会转到php页面。如何防止它进入php页面?$(“form”).each(function(){$(this).validate({submitHandler:function(form){/*'form'具有正确的值//Perform AJAX call here*/var$div=form.parent(“div”)$.post(form.action,$form.serialize(),function(data){$div.html(data)};});您有几个导致问题的语法错误。1.确保在语句末尾使用分号。2.您尚未定义
$form
,正在函数中使用它。下面是另一个异步完成
POST
的示例(请检查Firebug以确保):
$("form").each(function() {
    $(this).validate({
        submitHandler: function(form) {
            /* 'form' has the correct value */
            var values = $(form).serialize(),
                $div = $(form).parent("div");

            alert(form.action);
            alert(form.id);
            /* Perform AJAX call here */
        }
    });
});