我在页面上有一个div,我通过使用jquery .load()和setTimeout()刷新来自另一个php页面(同一网站)的div。这个div虽然包含一个带有两个单选按钮的表单,这些按钮具有随机名称和id。按下提交按钮后,页面将重定向到包含其他选项的表单页面。我想要做的是提交表单而不重定向到默认表单页面。
P.S。提交后包含“消失”形式的div,并显示另一个带有其他选项的div。我只想让它从目的地div中消失。我无法控制源页面,也无法更改任何内容。
<div id="destinationdiv">
//source form that doesn't have id goes here
</div>
答案 0 :(得分:1)
您可以在页面加载时将提交处理程序委派给表单,即使它在加载ajax之前也不存在。由于表单没有标识符,因此将使用它的父元素和表单标记作为选择器
$(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;
})
答案 1 :(得分:0)
也许你可以通过序列化表单(参见JQuery的.serialize()
)并通过AJAX发送(使用$.get()
或$.post
)来自己“提交”:
$('#myform').submit(function() {
$.post("pageThatUsesTheFormData.php", $(this).serialize();
return false;
});
(我假设它是一个使用表单数据的php页面,但也可以是ASP.NET,无所谓)。
这样,表单实际上不会像普通的HTML意义那样被“提交”(这是因为return false;
),但您仍然可以将数据发送到将处理它的页面。
如果必须使用GET方法而不是POST,请使用$.get("url?"+$(this).serialize());
。