Шаг 223.
Библиотека jQuery.
Использование модулей расширения. Советы и рекомендации

    На этом шаге мы приведем некторые советы и рекомендации по использованию методов .ajaxForm() и .ajaxSubmit().

    Обычно метод .ajaxForm() удобнее, чем метод .ajaxSubmit(), за счет дополнительной гибкости. Когда желательно доверить расширению управление подключением всех обработчиков событий, а также вызывать метод .ajaxSubmit() в нужный момент времени, лучше использовать метод .ajaxForm(). Когда необходимо иметь более тонкий контроль над обработкой события submit, рекомендуется использовать метод .ajaxSubmit().

    Оба метода, .ajaxForm() и .ajaxSubmit(), по умолчанию используют значения атрибутов action и method в разметке формы. Расширение будет действовать в соответствии с нашими ожиданиями, не требуя производить какие-либо дополнительные манипуляции, при условии использования корректной разметки формы. В качестве дополнительной выгоды мы автоматически получаем следование принципу прогрессивного улучшения - при отсутствии поддержки JavaScript форма сохраняет свою функциональность.

    Обычно, если для отправки формы используется элемент с атрибутом name, вместе с формой на сервер отправляются значения атрибутов name и value этого элемента. Метод .ajaxForm() в отношении таких элементов является активным - он добавляет обработчики события click ко всем элементам <input type="submit">, благодаря чему он знает, какой элементов инициировал отправку формы. Метод .ajaxSubmit(), напротив, является реактивным и не имеет возможности получить эту информацию. Он не фиксирует информацию о том, какой элемент вызвал отправку формы. То же самое относится и к элементам <input type="image">: метод .ajaxForm() обрабатывает их, а метод .ajaxSubmit() игнорирует.

    Если вместе с формой не выполняется выгрузка файла на сервер, методы .ajaxForm() и .ajaxSubmit() передают свои параметры методу $.ajax(), который является частью ядра библиотеки jQuery. Благодаря этому с помощью расширения Form можно передавать методу $.ajax() любые допустимые параметры. Применяя данную особенность, можно еще больше повысить устойчивость приемов использования технологии AJAX, допустим так:

$(document).ready(function() {
  $(#myForm).ajaxForm({ 
    timeout: 2000,
    error: function (xml, status, e) { 
      alert(e.message);
    }
  });
});

    Когда не требуется точная настройка поведения методов .ajaxForm() и .ajaxSubmit(), вместо отображения с параметрами им можно передавать функцию. Поскольку такая функция будет интерпретироваться как обработчик случая успешного получения ответа, мы можем выполнять обработку ответа, полученного от сервера, например:

$(document).ready(function() { 
  $(#myForm).ajaxForm(function(responseText) { 
    alert(responseText);
  });
});

    Со следующего шага мы начнем знакомиться с библиотекой расширений jQuery Ul.




Предыдущий шаг Содержание Следующий шаг