2010-07-08 2 views
1

У меня есть модель Django ModelForm, но вы не хотите, чтобы пользователь нажимал кнопку reguar submit. Вместо этого я сделал свою собственную кнопку отправки и разместил данные формы с помощью Ajax/jQuery. Данные для публикации - это сочетание данных формы и другой информации, которую я собираю в своем интерфейсе. Но ... как я могу получить отформатированные данные POST, которые должна была отправить html-форма? Если я могу получить его как объект JSON или jQuery, лучше!Как получить отформатированные данные POST формы Django?

ответ

1

Вы можете использовать jQuery.serialize() для этого, который вы, в свою очередь, можете передать в качестве второго аргумента jQuery.post().

$('#formid').submit(function() { 
    $.post('serverUrl', $(this).serialize(), callbackFunction); 
    return false; 
}); 

В качестве альтернативы, вы можете также использовать jQuery Form plugin для этого, что делает вещи проще.

+0

Хорошо! Но мне нужно смешать этот сериализованный с другим объектом, как {param1: 1, param2: 2} . Еще одна проблема заключается в том, что когда я создаю объект

, всякий раз, когда я вызываю $ .post(), он фактически отправляет мою форму, перезагружая страницы, что не хорошо! – Roger

+0

1. Ну, вы можете получить '$ (this) .serialize()' в объект javascript перед пост-вызовом и добавить к нему поля вручную; 2. Действительно, нет. '$ .post' является отправкой AJAX, а' return false' означает, что действие отправки по умолчанию для формы не выполняется. –

+0

@Roger, @ Даниэль прав. Сделайте что-то вроде 'var data = $ (this) .serialize(); data.param1 = 1; '. 'Return false;' должен блокировать действие по умолчанию. – BalusC

Смежные вопросы