Web изменение стиля и сохраение

Gor

Well-Known Member
#1
Всем здравстуйте. Задача под Веб

необходимо в определённых полях по изменению значения этого поля на форме менять его цвет.


ЧТо сделал я:
Навесил на определённые поля на OnChange JS вызов функции look(this.name).

function look(v){
document.getElementById(v).style.color = "red";
}

Заработало - стал меняться цвет на красный если в нём изменяется значение.
НО ...
При нажатии на кнопку Submit (@Command([FileSave]);
@Command([FileCloseWindow])) сохранении формы цвет изменённого поля меняется на исходный.

На OnSubmit формы что то не довесил????
Не соображу что не докрутил, чтобы изменённый стиль сохранялся???
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#2
может, нужный цвет, в зависимости от значения, нужно прописать в onLoad или в HTML атрибутах редактируемых полей?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 439
351
homepage.mac.com
#3
если говорить о "дизайне" - вместо хардкода - CSS
если JS не менял "сохраняемых" полей (от кот. зависит вычисление цвета) - разумеется, изменения в JS не сохранятся
помимо вариантов OKEN...
можно хранить список стилей, для полей, зависимо от значения...
и "сверяться" с ним по JS событиям, но зависит от логики приложения
 

NetWood

Well-Known Member
Lotus team
17.04.2008
370
16
Питер
#4
Не отвечу конкретно, но посоветую направление. Ваша задача - частный и обрезанный случай валидатора полей.
Надо бы выкурить jQuery или prototype, чем писать собственные клюшки. Там не только с цветом станете работать ...
Пример подключения тут (база domquery.nsf)
 

Gor

Well-Known Member
#5
если говорить о "дизайне" - вместо хардкода - CSS
если JS не менял "сохраняемых" полей (от кот. зависит вычисление цвета) - разумеется, изменения в JS не сохранятся
помимо вариантов OKEN...
можно хранить список стилей, для полей, зависимо от значения...
и "сверяться" с ним по JS событиям, но зависит от логики приложения

не совсем понял фразу - если JS не менял "сохраняемых полей"

Смысл в следующем - есть заявка форма, на ней поля, одно поле статус. Заявка проходит этапы утверждения и уходит в архив.
Потом данную заявку из архива можно поднять кнопкой Update.
Открывается форма (Form?OpenForm) той же самой заявки со статусом Update и всеми значениями полей из архивной заявки (типа опция использовать как шаблон).
Надо сделать так, чтобы при изменении значения одного из полей на форме его значение выделялось в красном цвете. (чтобы видеть чем форма отличается от шаблона)
Я не совсем пойму как мне поможет это -
может, нужный цвет, в зависимости от значения, нужно прописать в onLoad или в HTML атрибутах редактируемых полей
Тут же смысл в том чтобы изменять значение только в том случае если отличается от исходного...


ЕДинственно решение которое мне видится:

Прикрепить к каждому полю скрытое поле со значениями 1, 0. На OnChange исходного поля записывать туда 1 или 0 (зависит от того изменили поле или нет)
Также к каждому полю прикрепить Computed Value с тегами и условиями. Если 1 то <font color=red>, если 0 то цвет оставляем обычным. при сохранении документа значения полей станут сохраняться.

Просто может быть проще вариант есть? Или я вас неправильно понял...(

P.S.
Не отвечу конкретно, но посоветую направление. Ваша задача - частный и обрезанный случай валидатора полей.
Надо бы выкурить jQuery или prototype, чем писать собственные клюшки. Там не только с цветом станете работать ...
Пример подключения тут (база domquery.nsf)
А валидатор полей я уже юзаю, заточил под свои нужды его конечн немонго, огромное спасибо кстати за подробный пример =)
А вот в его использовании при решении данной задачи даже как то не задумывался.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 439
351
homepage.mac.com
#6
JS может поменять редактируемое поле (в кот. фиксировать стили для изменённых полей) и после сохранения там значение останется, откуда при старте и прочих операция можно забрать значения и обработать, при отображении подсветки
поле для этой логики нужно сделать мультивалюйным