Целевое обновление jquery.form иногда - PullRequest
0 голосов
/ 04 сентября 2010

Я использую плагин jQuery.form для .ajaxSubmit() между входами и выходами из div (для ведения журнала, а иногда и для проверки).Пользователь может перемещаться вперед и назад.Некоторые из div имеют полные данные формы, и в этом случае я бы использовал родительский div формы как target:.Тем не менее, другие div содержат текстовые и навигационные кнопки, и их не нужно обновлять (просто .hide() после того, как ajaxSubmit возвращает строку, указывающую следующий div-идентификатор для pop).Если я использую $(this).parent('div') в качестве цели, весь div перезаписывается возвращаемой строкой.Эта строка используется только для заполнения скрытого элемента, чтобы помочь с навигацией по этим экранам / разделам.

$('.CSRForm').submit(function () {
    $(this).ajaxSubmit({
        target: $(this).parent('div'), //for validation purposes on the forms with data
        success: StepCall //to check whether the response is valid for redirecting; and logging
    });
    return false;
});

function StepCall(responseText, statusText, xhr, $form) {
    if (responseText != "Negatory") { //"Negatory" would indicate no navigation
        $form.parent('div').css("display", "none"); //doesn't seem to work, neither does "hide()"
        $('#' + responseText).css("display", "block");
    }
}

Кроме того, я не уверен, правильно ли я использую $form в .ajaxSubmit success обратный звонок.Кто-нибудь знает? веб-сайт не понятен.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2010

$ - это завернутая ссылка на вашу форму вызова.

Цель $(this).parent('div') была обновлена ​​с ответом, прежде чем ваша функция успеха вызывается.

Ваша форма запуска была переписана с ответом xhr. $ Form.parent в вашем методе успеха проходит через ошибку, потому что ссылка на $ form больше недействительна, ...

0 голосов
/ 04 сентября 2010

Я думаю, что $ form здесь будет объектом jQuery. Я думаю, что было бы неплохо сбросить этот объект на консоль, чтобы выяснить, существует ли этот объект (просто для здравого смысла). Если вы используете firebug, я считаю, что использование console.log () в вашем JS должно работать.

успех

Функция обратного вызова, которая будет вызвана после Форма была отправлена. Если функция обратного вызова «успех» при условии, что он вызывается после ответ был возвращен из сервер. Передано следующее Аргументы:

  1. 1.) Значение responseText или responseXML (в зависимости от значения опция dataType).
  2. 2.) StatusText
  3. 3.) Xhr (или элемент формы в jQuery, если используется jQuery <1.4) </li>
  4. 4.) JQuery-обернутый элемент формы (или неопределенный, если используется jQuery <1.4) </li>

Так что он определенно должен быть передан вам как объект jQuery. Я полагаю, что если вы используете jQuery <1.4, у вас проблемы. </p>

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