Javascript-форум (https://javascript.ru/forum/)
-   Dojo toolkit (https://javascript.ru/forum/dojotoolkit/)
-   -   запоминание введенных в форму данных (https://javascript.ru/forum/dojotoolkit/36131-zapominanie-vvedennykh-v-formu-dannykh.html)

kayuga 04.03.2013 20:40

запоминание введенных в форму данных
 
Всем привет
к примеру у меня есть форма
<div dojoType="dijit.form.Form" id="filterGoodFlow" jsId="filterGoodFlow">
    <input type="text" name="article" id="filterGoodFlow_article" dojoType="dijit.form.ValidationTextBox" value="" />
</div>


инпутов естественно больше и типы разные. мне нужно запоминать введенные значения и при последующем открытии окна заполнять форму прошлыми значениями. запоминаю так, тут всё ок, работает.
app.storage.put('filterGoodFlow_obj', filterGoodFlow.getValues(), function(){}, 'filterGoodFlow');

Как мне потом заполнить ими форму ? Тут получаю значения из хранилища.
var filter_stored_values = app.storage.get('filterGoodFlow_obj', 'filterGoodFlow');


Единственный способ заполнения, который приходит в голову - на каждое поле формы:
dojo.byId('filterGoodFlow_article').value = filter_stored_values.article;
filterGoodFlow.value.article =  filter_stored_values.article;

и так вручную по каждому полю. И то не факт что заработает. А форм таких и полей в них очень много, хотелось бы что-то хотя бы более-менее универсальное. Мб я туплю и это делается в 2 строчки, но сроки горят. штудирование документации особых плодов не принесло. Хелп, камрады ( Буду признателен за любой совет.

Deff 04.03.2013 22:33

kayuga,
Ройте в сторону formdata и blob

danik.js 05.03.2013 03:18

Цитата:

Сообщение от Deff
Ройте в сторону formdata и blob

Как это тут поможет? formData позволит разом заполнить все поля?
Цитата:

Сообщение от kayuga
Мб я туплю и это делается в 2 строчки, но сроки горят

Вы ищете реализацию функции «сделатьВсёЗа*бись()» ?

Делайте что-то вроде:
for (var property in filter_stored_values) {
    var field = myform[property]; // это может быть не Xбраузерно
    field.value = filter_stored_values[property];
}

burashka 05.03.2013 11:20

Есть отличная штука dojox/mvc/getStateful. Это модель, в ней можно хранить данные связанные с некоторыми виджетами. Связка осуществляется с помощью модуля dojox/mvc/at. После того как элемент формы будет терять фокус данные этого элемента будут автоматически сохранятся в соответствующее свойство модели. Так же, когда вы в первый раз откроете форму - туда сразу будут подставлены данные из модели. Реальное использование, на первый взгляд, может показаться не простым, но это очень мощный и удобный инструмент.

kayuga 05.03.2013 16:34

burashka, Спс за совет, но так переписывать половину придется. Мб посоветуете что попроще?

Deff 05.03.2013 20:52

kayuga,
Проще цикл по всем тегам формы, при наличии value - вписывать value явно в форму, эту форму сохранить
к примеру - на jQuery - это пять-шесть строк,(Думаю на dojo - не больше)

danik.js 06.03.2013 02:26

Цитата:

Сообщение от Deff
- на jQuery пять-шесть строк,

Предлагаешь помимо dojo еще и jQuery подключить?

Deff 06.03.2013 03:56

danik.js,
Такое ощущение, что провоцируешь постоянно,
В сравнении: - коли на jQuery 5-6 строк, думаю на dojo - не больше!

burashka 06.03.2013 11:26

Вряд ли от JQuery в предлагаемом решении требуется что-то больше чем селекторы. Так что он тут не нужен. Используйте dojo/query.

если правильно понял идею Deff:
1) с помощью dojo/query выбираете все элементы формы.
2) у полученного объекта есть метод forEach, который легко позволит их все перебрать.
3) для каждого элемента смотрите есть ли для него запомненное value и если надо подставляете.

похоже на Dojo даже в одну строку уложить можно)

но это костыль. ручная работа с DOM элементами виджетов - это прямая дорога в бесформенное месиво вместо фронт-энда.

Deff 06.03.2013 12:45

Цитата:

Сообщение от burashka
но это костыль. ручная работа с DOM элементами виджетов - это прямая дорога в бесформенное месиво вместо фронт-энда.

Дык А как это
Цитата:

Сообщение от burashka
Так же, когда вы в первый раз откроете форму - туда сразу будут подставлены данные из модели. Реальное использование, на первый взгляд, может показаться не простым, но это очень мощный и удобный инструмент.

А как это, - сохранить на LocalStorage, после перезагрузки компутера - или браузера ? LocalStorage только строки хранит, -
HTML же формы - чисто строка,
Можно конечно искать объектную библу под LocalStorage, но оно всегда кастрированное, приватные свойства вряд ли удастся сохранить

danik.js 06.03.2013 14:02

Цитата:

Сообщение от burashka
но это костыль. ручная работа с DOM элементами виджетов - это прямая дорога в бесформенное месиво вместо фронт-энда.

Полностью согласен. Правда у меня опыт с ExtJS, то суть таже.
Так jquery-исты тут не помогут (как и я)
Цитата:

Сообщение от Deff
А как это, - сохранить на LocalStorage, после перезагрузки компутера - или браузера ? LocalStorage только строки хранит, -
HTML же формы - чисто строка,
Можно конечно искать объектную библу под LocalStorage, но оно всегда кастрированное, приватные свойства вряд ли удастся сохранить

Че за ахинея? Кто-нибудь понял о чем тут речь?

burashka 06.03.2013 14:06

в LocalStorage можно хранить JSON. сделали parse получили обычный JS object, который скармливается конструктору модели - вуаля модель готова. при уходя со страницы модельку превратили в JSON и сохранили обратно в LS.

но про костыль я сказал по другой причине. Если работаешь не прямо с DOM-ом, а с объектами фреймворка, то надо и продолжать с ними работать через публичный API, а не лезть с ногами в DOM элементы, которые создал фреймворк.

Deff 06.03.2013 17:08

Цитата:

Сообщение от danik.js
Че за ахинея? Кто-нибудь понял о чем тут речь?

- Как могу, у тьву тоже с просьбой по оптимизации парсера мало кто понял и помог, походу burashka, нормально воспринял и интерпретировал, в отличии от вездессущих
Не стоит зарабатывать рейтинг, обсирая чужие мнения и решения, - аукнуться может, - непогрешимых нет, о присутствующих в том числе.

danik.js 07.03.2013 02:32

Цитата:

Сообщение от Deff
Не стоит зарабатывать рейтинг, обсирая чужие мнения и решения, - аукнуться может, - непогрешимых нет, о присутствующих в том числе.

Да плевал я на рейтинг. У мня недавно было +666, я вабще хотел чтобы так и осталось, даже аватарку сменил по теме, так нет же, дальше плюсовали.

Kristi555Tub 20.02.2016 10:27

запоминание введенных в форму данных
 
за инфо.Форму я создал,а вот как правильно и с помощью чего её обрабатывать пока не догоняю.

NikitenkoAS 11.11.2016 08:36

Test, just a test
 
http://propasport.com/main/5-snyat-k...srednikov.html


Часовой пояс GMT +3, время: 01:52.