Вы можете сделать что-то вроде этого:
$('#myform').submit(function(e) {
e.preventDefault(); // don't submit the form
var form = $(this); // store it for later reference
form.children('input').each(function() {
form.data($(this).attr('name'), $(this).attr('value'));
});
});
Редактировать : в моем коде были ошибки (getChildren
»children
, myform
» #myform
) - теперь я исправил его.
Обратите внимание, что этот скрипт не отправляет форму. Вы можете добавить какой-нибудь отличный ajax , чтобы сделать это :)
http://docs.jquery.com/Ajax/serialize
Обновление : На самом деле, jQuery уже имеет эту встроенную функциональность: form.serialize()
. Возвращает правильную строку запроса:
<form id="myForm">
<input type="radio" value="A" name="foo" checked="checked" /> A<br />
<input type="radio" value="B" name="foo" /> B
<input type="text" name="bar" value="Bla bla" />
</form>
<script>
var queryString = $('#myForm').serialize(); //foo=A&bar=Bla+bla
</script>