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

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 17 мар 2010.

Наш партнер Genesis Hackspace
  1. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Всем здравстуйте. Задача под Веб

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


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

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

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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.445
    Симпатии:
    7
    может, нужный цвет, в зависимости от значения, нужно прописать в onLoad или в HTML атрибутах редактируемых полей?
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.164
    Симпатии:
    306
    если говорить о "дизайне" - вместо хардкода - CSS
    если JS не менял "сохраняемых" полей (от кот. зависит вычисление цвета) - разумеется, изменения в JS не сохранятся
    помимо вариантов OKEN...
    можно хранить список стилей, для полей, зависимо от значения...
    и "сверяться" с ним по JS событиям, но зависит от логики приложения
     
  4. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    329
    Симпатии:
    1
    Не отвечу конкретно, но посоветую направление. Ваша задача - частный и обрезанный случай валидатора полей.
    Надо бы выкурить jQuery или prototype, чем писать собственные клюшки. Там не только с цветом станете работать ...
    Пример подключения тут (база domquery.nsf)
     
  5. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2

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

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


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

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

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

    P.S.
    А валидатор полей я уже юзаю, заточил под свои нужды его конечн немонго, огромное спасибо кстати за подробный пример =)
    А вот в его использовании при решении данной задачи даже как то не задумывался.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.164
    Симпатии:
    306
    JS может поменять редактируемое поле (в кот. фиксировать стили для изменённых полей) и после сохранения там значение останется, откуда при старте и прочих операция можно забрать значения и обработать, при отображении подсветки
    поле для этой логики нужно сделать мультивалюйным
     
Загрузка...

Поделиться этой страницей