通过jquery ajax加载远程表单后停止刷新页面

通过jquery ajax加载远程表单后停止刷新页面,jquery,ajax,Jquery,Ajax,我在一个页面上有一个div,通过使用jquery.load()和setTimeout()刷新,我从另一个php页面(同一个网站)加载了一个div。不过,这个div包含一个带有两个单选按钮的表单,其中有随机名称和id。按下submit按钮后,页面将重定向到包含其他选项的表单页面。我要做的是提交表单而不重定向到默认表单页面 p、 提交后,包含表单“消失”的div将消失,并出现另一个具有其他选项的div。我只想让它从目标div中消失。我无法控制源页面,无法在那里更改任何内容 <div id="d

我在一个页面上有一个div,通过使用jquery.load()和setTimeout()刷新,我从另一个php页面(同一个网站)加载了一个div。不过,这个div包含一个带有两个单选按钮的表单,其中有随机名称和id。按下submit按钮后,页面将重定向到包含其他选项的表单页面。我要做的是提交表单而不重定向到默认表单页面

p、 提交后,包含表单“消失”的div将消失,并出现另一个具有其他选项的div。我只想让它从目标div中消失。我无法控制源页面,无法在那里更改任何内容

<div id="destinationdiv">
//source form that doesn't have id goes here
</div>

//没有id的源窗体位于此处

也许您可以通过序列化表单(请参见JQuery的
.serialize()
)并通过AJAX发送表单(使用
$.get()
$.post
)来进行自己的“提交”:

(我假设它是一个使用表单数据的php页面,但也可以是ASP.NET,这无关紧要)

通过这种方式,表单实际上不会像普通HTML意义上的那样“提交”(这是因为
返回false;
),但您仍然可以将数据发送到将处理它的页面


使用
$.get(“url?”+$(this.serialize())
如果必须使用GET方法而不是POST。

可以在页面加载时将提交处理程序委托给表单,即使表单在ajax加载之前不存在。因为表单没有标识符,所以将使用它的父元素和表单标记作为选择器


表单没有标识符,而且是ajax加载的…最好是delagate Handler没有标识符,所以我使用了另一种方法。无论如何谢谢你!
$('#myform').submit(function() {

  $.post("pageThatUsesTheFormData.php", $(this).serialize();

  return false;
});
$(document).on('submit', '#destinationdiv form', function() { /* "this" will be the form element*/


    /* serialize all fields for ajax submittal*/
    var data = $(this).serialize();

    /* ajax post data */
    $.post(url, data, function(data) { 
       /* do something with return data, or local html on success here*/
    });

    /* prevent browser default submit*/

    return false;
})