无法通过jquery中的ajax回调函数提交表单

时间:2013-03-08 09:35:00

标签: ajax jquery

我做了一个ajax来阻止表单提交验证

我正在通过将ajaxs返回存储在隐藏变量中来进行验证...

我的表单因为在我的其他循环中返回false而未提交

在Ajax返回成功之后,我从jquery提交表单但是我正在

未捕获类型错误:对象#的属性“提交”不是函数 请帮助我.....

我只是在隐藏字段中存储值1,我从test.php ....

获取

但是控制台在$(“#foo”)[0] .submit();上显示错误。

如果我点击提交第二次JavaScript检查隐藏值= 1并进入真正的循环...然后获取提交

提前谢谢

<form id="foo" name="foo" action="pop.php"  method="get">
    <label for="bar">A bar</label>
    <input id="bar" name="bar" type="text" value="" />
    <input id="bar1" name="bar1" type="text" value="" />
    <input type="hidden" name="statushidden" id="statushidden" value=""/>
    <input type="submit" value="submit" id="submit" />
</form>

$(document).ready(function() {

    $("#submit").click(function() {
        var $form = $(this);
        var status = validdata();

        if (document.getElementById("statushidden").value=="1")
        {
            alert("true loop");
            return true;
        }
        else
        {
            alert("false loop");
            return false;
        }

    });

    function validdata()
    {
        var url = "test.php"; 
        $.ajax({
           type: "POST",
           beforeSend: function(){},
           url: url,
           data: $("#foo").serialize(), // serializes the form's elements.
           success: function(data)
           {
               document.getElementById("statushidden").value=data;
               console.log($("#foo")[0].submit);
               $("#foo")[0].submit(); ///// SHOWING Error on this line///////      
           }
        });
    }
});

2 个答案:

答案 0 :(得分:1)

您需要告诉contentType:"Application/Json"

在点击方法之前

。您可以阻止默认操作。一旦ajax完成,你调用submit方法。

$("#submit").click(function(e) {
         e.preventDefault();
        var $form = $(this);
        // your rest code. 
    });

尝试这样的ajax方法。

$.ajax({
url:url,
data:$("#foo").serialize(),
contentType:"Application/Json";
.... your success blocks. 
});  

如果您提交方法有问题。然后试试这个

$("form").submit(); ///// Error on this line will be fixed///////      

答案 1 :(得分:0)

请从以下功能中删除[0]来检查

function validdata()
    {
        var url = "test.php"; 
        $.ajax({
           type: "POST",
           beforeSend: function(){},
           url: url,
           data: $("#foo").serialize(), // serializes the form's elements.
           success: function(data)
           {
               document.getElementById("statushidden").value=data;
               $("#foo").submit(); ///// Removed [0] from your given snippet ///////      
           }
        });
    }