是否可以截取表单的POST字符串并通过AJAX发送?我可以使用$('form').submit()来拦截POST事件,但我不知道从哪里可以获得POST字符串。我可以从表单的输入中重新生成字符串,但这似乎值得怀疑。
发布于 2012-08-30 09:49:54
// capture submit
$('form').submit(function() {
var $theForm = $(this);
// send xhr request
$.ajax({
type: $theForm.attr('method'),
url: $theForm.attr('action'),
data: $theForm.serialize(),
success: function(data) {
console.log('Yay! Form sent.');
}
});
// prevent submitting again
return false;
});注意,正如Phil在他的评论中所说的那样,.serialize()没有包含submit按钮。如果您还需要值的提交按钮,您将不得不手动添加它。
发布于 2012-08-30 09:51:27
当然你可以这样做-你阻止你的表单像往常一样提交,你通过jQuery获取它的数据并执行一个POST:
$(form).submit(function(event){
// prevents default behaviour, i.e. reloading the page
event.preventDefault();
$.post(
$(this).attr('action'), // the form's action
$(this).serializeArray(), // the form data serialized
function(data)
{
// what you are supposed to do with POST response from server
}
)
});发布于 2012-08-30 09:50:00
使用.serialize(),它会将一组表单元素编码为字符串进行提交。
$('form').serialize() https://stackoverflow.com/questions/12188847
复制相似问题