Pull to refresh

jQuery.deserialize()

Reading time1 min
Views16K
Надо тут было сделать операцию, обратную методу 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
  }
}
Tags:
Hubs:
Total votes 49: ↑38 and ↓11+27
Comments36

Articles