如果我有HTML表单,请说...
<form id='myform'>
<input type='hidden' name='x' value='y'>
<input type='text' name='something' value='Type something in here.'>
<input type='submit' value='Submit'>
</form>
...然后我使用jQuery来响应表单提交事件,例如
$('#myform').submit(function() {
...
return false;
});
现在假设我想将表单作为AJAX调用提交,而不是以“传统”方式(作为新页面)实际提交它。是否有一种简单的方法来获取包含将要发送的数据的JS对象,我可以将其传递到$.post()
?所以在上面的例子中它看起来像......
{
x: 'y',
something: 'Type something in here.'
}
还是我必须自己烤?
答案 0 :(得分:2)
由于您已经在使用jQuery,请使用jQuery.serialize()
。
$('#myform').submit(function() {
var $form = $(this);
var data = $form.serialize();
// ...
});
答案 1 :(得分:2)
请参阅serialize()
方法。
$('#myform').submit(function() {
jQuery.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function () {
//
}
});
return false;
});