jquery .post()以.get()的形式发送

时间:2013-07-27 04:03:08

标签: jquery jquery-post

我会做空我有这个功能

$("#JqPostForm").submit(function(e){    
    e.preventDefault();  
    $("#despliegaresultados").empty();
    $("#paginacion").empty();
    $.post("php/prueba.php", $('#JqPostForm').serialize(),

    function(data)
    {
        $.each(data, function(i, item)
        {
            total= item.total;
            datos = item.datos;
        });

        //is doing something here 

    });
}, "json");

使用此html

<html>
.....
   <form>
       <input type="text" name="nombre">
       <input type="submit"> 
   </form>
......
</html>

并且它工作正常,发送和接收json格式的发布数据,我的问题是,当我尝试将表单保存在不同的html中,然后通过按钮或其他东西检索它时,我的调用是通过“GET”完成的“params,我不明白为什么。

我已经从jquery doc读过.load(),也有很多帖子来自这个网站,但我似乎没有找到任何信息,我也想提一下,我知道.load是默认获取,我发送一些参数使其发布,这就是我从外部存档获取表单的方式

$('#target').load('php/searchForm.html',{algo:'algo'});

然后我的表单现在加载到我的html上,但是当我提交它时,我的调用更改为“GET”。 PD。原谅我的英语,我不是美国人,也不是英语,谢谢。

3 个答案:

答案 0 :(得分:0)

GET是发送表单的默认方式,您的表单可能是以常规方式提交的,而不是javascript,因为存在语法错误,如果表单是动态插入的,则需要委托事件处理程序:

$('#target').on('submit', '#JqPostForm', function (e) {
    e.preventDefault();
    $("#despliegaresultados, #paginacion").empty();
    $.post("php/prueba.php", $('#JqPostForm').serialize(), function (data) {
        $.each(data, function (i, item) {

            // NOTE: Ajax is async, the below values are only accessible
            //       after the ajax call has completed

            var total = item.total,
                datos = item.datos;
        });
    }, "json");
});

答案 1 :(得分:0)

你忘了提及

<form method="POST">

答案 2 :(得分:0)

经过这么多的寻找,我带来了这个解决方案 jQuery load relaoding content in div via form submit in div

终于解决了,我的问题就这样解决了,我将两个文件,“index”和“externalForm”移动到同一目录,两者都在标题上        并且我可以加载外部表格然后使用它