使用jQuery验证上传的形式,在submitHandler(使用AJAX)...不工作 [英] Using jQuery validate to upload a form, using ajax in the submitHandler()... not working

查看:2668
本文介绍了使用jQuery验证上传的形式,在submitHandler(使用AJAX)...不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用jQuery的验证与表单。我想用ajax提交表单。当我把Ajax调用在验证的submitHandler()浏览器挂起。这是怎么回事?

I am using jquery validate with a form. I want to submit the form using ajax. When I put the ajax call in validate's submitHandler() The browser hangs. What's going on?

我得到的错误消息时启用验证方法的调试是:

The error message I get when I enable the validate method's debug is:

未捕获的异常:[异常...   在WrappedNative非法操作   原型对象nsresult:   0x8057000c   (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)   位置:JS框架::    http://ajax.googleapis.com/ajax/libs /jquery/1.4.2/jquery.min.js   ::˚F::行132的数据:无]

uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js :: f :: line 132" data: no]

这是太神秘,我做的感觉。

Which is too arcane for me to make sense of.

有些code:

$(document).ready(function() {
$("#loginForm").validate({
        debug: true,
        errorLabelContainer: $('div.error'),
        wrapper: 'li',
        rules:  {
            last_name: {
                required: true
            }
        },
        messages: {
            last_name: {
                required: "Please enter your last name."
            }
        },
        submitHandler: function(form){
            $.ajax({
                type: "POST",
                url: "test.php",
                data: form,
                success: function(msg){
                    console.log( "Data Saved: " + msg );
                },
                error: function(msg){
                    console.log( "Error: " + msg);
                }
            });
        }
    });

});

的形式是一个非常香草形式。通过标准的POST提交工作正常。此外,确认工作正常......它只是失败我提交与阿贾克斯的部分。

The form is a very vanilla form. Submitting via a standard POST works fine. Also, the validation works fine... it's just the submitting with ajax part that fails me.

推荐答案

您可能会想在发送前以连载的形式 - 你可能不希望发出一个DOM对象

You'll probably want to serialise that form before sending it - you probably don't want to send a DOM object

编辑RE:发表评论 - 只选择一些投入和序列化 -

edit RE:comment - to select only some inputs and serialize -

$(form).find(":input[name=inp1] :input[name=inp2]").serialize()

这篇关于使用jQuery验证上传的形式,在submitHandler(使用AJAX)...不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆