Как сохранить значения формы в объекте data ()? - PullRequest
3 голосов
/ 18 апреля 2009

Существует ли простой способ хранения данных формы в data() объекте после отправки?

Предположим, это моя форма:

<form id='myform'>  
<input type='text' name='bar' value='lorem'/>  
<input type='text name='foo' value='ipsum'/>  
</form>

После отправки данные должны храниться так:

$("#myform").data('bar','lorem');  
$("#myform").data('foo','ipsum');

1 Ответ

3 голосов
/ 18 апреля 2009

Вы можете сделать что-то вроде этого:

$('#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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...