Как стать автором
Обновить

jQuery.deserialize()

Время на прочтение1 мин
Количество просмотров16K
Надо тут было сделать операцию, обратную методу jQuery.serialize(), т.е. по GET-строке заполнить форму. Вроде ничего не нашел, подумал, что написать будет быстрее, чем копаться. То, что получилось — раздаю всем желающим, возможно, кому нибудь час-другой сэкономит.

Брать здесь:
github.com/maxatwork/jquery.deserialize



UPD: Спасибо всем за багрепорты!

UPD: Товарищ nayjest подсказывает, что нужны варианты применения.

Мне нужно было для навигации по результатам ajax-поиска:
— форма сериализуется, результат пишется в window.location.hash
— при загрузке страницы данные из location.hash десериализуются, а форма отправляется на сервер.

Тогда остается поиск без перезагрузки страницы, но по прежнему можно скопировать ссылку на результат выдачи, и отправить ее знакомому, например.

В случае jQuery Form Plugin это выглядит примерно так:
$(document).ready() {
  $("#searchForm")
    .ajaxForm( myFormCallback )
    .deserialize(window.location.hash)
    .submit()
    .change( function () {
      window.location.hash = $(this).formSerialize();
      $(this).submit();
    });

  function myFormCallback(response) {
    //do smth
  }
}
Теги:
Хабы:
Всего голосов 49: ↑38 и ↓11+27
Комментарии36

Публикации

Истории

Ближайшие события

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область