我有一个事件监听器:
$('button.publish').live('click', function() {
//enter code here
});
此button
元素位于表单内。我知道我不能使用$(this).submit();
因为它会导致刷新。我也无法通过其ID来定位表单,因为我正在尝试将其用于一般用途(添加新闻,添加联系人,添加...)。
知道这一点,我可以使用表单的操作,因为它彼此不同,但我不知道如何使用AJAX(使用$.post()
)在按钮事件监听器中提交表单。
这是否正确使用:
var form = $(this).closest('form');
$.post(form.attr('action'), form.serializeArray(), callback, type);
还是有更好的方法?
答案 0 :(得分:0)
我不知道一种先进的方法,但一种简单的方法是获取每个表单元素的数据,如$(“#bar”)。val();快速示例:
$.ajax({
type: "POST",
url: "some.php",
data: data: "bar="+$("#bar").val()+"&foo=bar",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
答案 1 :(得分:0)
你拥有的是正确的,你可以使用.serliaze()
在jQuery方面保存一些步骤,如下所示:
var form = $(this).closest('form');
$.post(form.attr('action'), form.serialize(), function(data) {
alert("The response was: " + data);
});