是否可以截取表单的 POST 字符串并改为通过 AJAX 发送?我可以使用 $('form').submit() 来拦截 POST 事件,但我看不到可以从哪里获取 POST 字符串。我可以从表单的输入中重现字符串,但这似乎很可疑。
问问题
8761 次
3 回答
24
// 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;
});
请注意,正如菲尔在他的评论中所说,.serialize()
不包括提交按钮。如果您还需要提交按钮的值,则必须手动添加它。
于 2012-08-30T01:49:54.117 回答
3
你当然可以这样做——你阻止你的表单像往常一样提交,你获取它的数据并POST
通过 jQuery 执行:
$(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-30T01:51:27.427 回答
0
使用.serialize()
,它会将一组表单元素编码为字符串以进行提交。
$('form').serialize()
于 2012-08-30T01:49:59.967 回答