Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2013, 20:40
Интересующийся
Отправить личное сообщение для kayuga Посмотреть профиль Найти все сообщения от kayuga
 
Регистрация: 12.01.2011
Сообщений: 10

запоминание введенных в форму данных
Всем привет
к примеру у меня есть форма
<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 строчки, но сроки горят. штудирование документации особых плодов не принесло. Хелп, камрады ( Буду признателен за любой совет.

Последний раз редактировалось kayuga, 04.03.2013 в 21:48.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2013, 22:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

kayuga,
Ройте в сторону formdata и blob
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2013, 03:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deff
Ройте в сторону formdata и blob
Как это тут поможет? formData позволит разом заполнить все поля?
Сообщение от kayuga
Мб я туплю и это делается в 2 строчки, но сроки горят
Вы ищете реализацию функции «сделатьВсёЗа*бись()» ?

Делайте что-то вроде:
for (var property in filter_stored_values) {
    var field = myform[property]; // это может быть не Xбраузерно
    field.value = filter_stored_values[property];
}
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2013, 11:20
Аспирант
Отправить личное сообщение для burashka Посмотреть профиль Найти все сообщения от burashka
 
Регистрация: 15.07.2010
Сообщений: 49

Есть отличная штука dojox/mvc/getStateful. Это модель, в ней можно хранить данные связанные с некоторыми виджетами. Связка осуществляется с помощью модуля dojox/mvc/at. После того как элемент формы будет терять фокус данные этого элемента будут автоматически сохранятся в соответствующее свойство модели. Так же, когда вы в первый раз откроете форму - туда сразу будут подставлены данные из модели. Реальное использование, на первый взгляд, может показаться не простым, но это очень мощный и удобный инструмент.
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2013, 16:34
Интересующийся
Отправить личное сообщение для kayuga Посмотреть профиль Найти все сообщения от kayuga
 
Регистрация: 12.01.2011
Сообщений: 10

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

Последний раз редактировалось kayuga, 05.03.2013 в 16:37.
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2013, 20:52
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

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

Последний раз редактировалось Deff, 06.03.2013 в 12:35.
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2013, 02:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deff
- на jQuery пять-шесть строк,
Предлагаешь помимо dojo еще и jQuery подключить?
Ответить с цитированием
  #8 (permalink)  
Старый 06.03.2013, 03:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

danik.js,
Такое ощущение, что провоцируешь постоянно,
В сравнении: - коли на jQuery 5-6 строк, думаю на dojo - не больше!
Ответить с цитированием
  #9 (permalink)  
Старый 06.03.2013, 11:26
Аспирант
Отправить личное сообщение для burashka Посмотреть профиль Найти все сообщения от burashka
 
Регистрация: 15.07.2010
Сообщений: 49

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

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

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

но это костыль. ручная работа с DOM элементами виджетов - это прямая дорога в бесформенное месиво вместо фронт-энда.
Ответить с цитированием
  #10 (permalink)  
Старый 06.03.2013, 12:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение/вывод данных, введенных в форму после вывода ошибки johnsnow91 jQuery 14 27.02.2013 08:29
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 11:00
Странно себя ведет простейшая проверка введенных данных в форме San4eZ Общие вопросы Javascript 7 06.10.2011 08:17
Передача данных из формы/в форму. Катерина Общие вопросы Javascript 0 30.01.2010 17:01
формирую форму из данных полученных AJAx belbek AJAX и COMET 5 26.06.2009 14:01