Утилиты для работы с формами и HTTP

Некоторые решения, основанные на технологии AJAX, при правильной реализации могут производить сильное впечатление, но не будем забывать, что некоторые проверенные элементы, такие как формы HTML, еще совсем не устарели и попрежнему играют важную роль во многих современных решениях, как с применением технологии AJAX, так и без нее. Библиотека Base предоставляет три функции преобразования форм:
dojo.formToObject(/*DOMNode||String*/ formNode) //Возвращает Object
dojo.formToQuery(/*DOMNode||String*/ formNode) //Возвращает String
dojo.formToJson(/*DOMNode||String*/ formNode) //Возвращает String

Чтобы продемонстрировать действие каждой из этих функций, предположим, что у нас имеется следующая форма:




Ниже приводятся результаты вызова каждой функции.


Обратите внимание, что неактивные элементы формы были пропущены при преобразовании:
Функция formToObject вернула:
{
first: "Foo",
last : "Bar",
favorites: [
"green",
"blue"
]
};

Функция formToQuery вернула:
"first=Foo&last=Bar&favorites=green&favorites=blue"
Функция formToJson вернула:
'{"first": "Foo", "last": "Bar", "favorites": ["green", "blue"]}'

Библиотека Base предоставляет следующие вспомогательные функции, позволяющие выполнять преобразование строки запроса в объект и обратно. Они достаточно просты в применении, но не забывайте, что значения в строке запроса преобразуются в строки, даже если они фактически являются числами:
dojo.queryToObject(/*String*/ str) //Возвращает Object
dojo.objectToQuery(/*Object*/ map) //Возвращает String

Ниже приводится короткий фрагмент, иллюстрирующий применение этих функций:
//вернет объект {foo : "1", bar : "2", baz : "3"}
var o = dojo.queryToObject("foo=1&bar=2&baz=3");
//преобразует объект обратно в строку "foo=1&bar=2&baz=3"
dojo.objectToQuery(o);

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур