JQuery перехватить отправку формы в строку параметров - PullRequest
5 голосов
/ 15 июня 2011

У меня есть форма.Эта форма отправляет через POST в iframe, который, в свою очередь, обрабатывает запрос и, в зависимости от результата, выполняется javascript, который изменяет содержание родителя в соответствии с действительностью представления.

Теперь я не понимаюне нравится эта процедура.Я хочу иметь возможность отправлять несколько форм одновременно, но у меня есть только этот скрытый iframe.Поэтому я хотел бы сделать это с AJAX, создав отдельный запрос для каждой отправки формы.

Однако моя форма сложна;он состоит из флажков, которые добавляют переменные в массивы, из изображений, по которым щелкают и чьи координаты щелчка мне нужно отправить, и из сложных вещей вроде этого - вот почему я вместо того, чтобы вычислять каждое значение каждого ввода и добавлять его в параметр postстрока (кстати: я не знаю, как я могу создать массивы таким образом), я бы предпочел перехватить содержимое отправки, сохранить как строку сообщения со всеми этими параметрами, а затем использовать эту строку для AJAXPOST запрос.

Что я хотел бы сделать в этой функции:

$('#myForm').submit(function(event){

    // process the submission, e. g. event.getContent().toPostString();

    // create the AJAX request and send it and attach listeners (I know how to do this line ;)

    return false; // I don't want the form submitted (to the iframe)

});

Заранее спасибо!

Ответы [ 2 ]

7 голосов
/ 15 июня 2011

Не используйте iframe, просто используйте ajax-методы jQuery : (я использовал post() в приведенном ниже примере)

$('#myForm').submit(function(event){

             //url          //post data
    $.post(this.action, $(this).serialize(), function(returnData){
           //do something with returnData
    })

    return false; //do not submit form the normal way

});

Вотпример: http://jsfiddle.net/maniator/Y6r8E/
Введите что-то в форму и отправьте.

1 голос
/ 15 июня 2011

Функция jQuery serialize () будет собирать данные формы для вас, чтобы упростить отправку формы через .ajax () или .post ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...