• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Set/get scope var через csjs

victorhalf

Green Team
29.05.2007
79
3
BIT
0
Привет, Помогите понять что не так.
Что нужно: спросить пользователя и записать его ответ в поле документа
Что делал:
1)поле прикрученное к скоп переменной
Код:
<xp:inputText id="rejectInput" value="#{sessionScope.rejectReason}">  </xp:inputText>
2)кнопка с кодом
csjs =
JavaScript:
var ans = XSP.prompt("Причина?");
if(ans==null || ans=="" )
   {alert("Нужна причина "); return false
}else{
   XSP.getElementById("#{id:rejectInput}").value = ans;
  return true;  };
ssjs =
(для примера) document1.setValue("history",sessionScope.rejectReason);

В чем хрень: в итоге в ssjs скоп переменную не получаю (смотрю в дебагере - её вообще нет)
Причем этот код работал пока всё было на одной странице, а когда разбросал по кастом контролам обнаружил такую ж.
Помогите плиз, может чего не так делаю?
 
R

romych2004

А Вы данные-то на сервер отправляете? (партиал рефреш)
Скиньте полный код кнопки, пожалуйста
 

victorhalf

Green Team
29.05.2007
79
3
BIT
0
А Вы данные-то на сервер отправляете? (партиал рефреш)
Изначально - нет. Но код-то работал(пока был на одной странице).
Как я понимаю рефреш запускать нужно из клиентского кода? Тогда это ситуацию не изменило.
JavaScript:
 var ans = XSP.prompt("Причина?");
if(ans==null || ans=="" )
   {alert("Нужна причина "); return false
}else{
   XSP.getElementById("#{id:rejectInput}").value = ans;
   XSP.partialRefreshGet("#{id:rejectInput}");
  return true;  };
Полный код кнопки местный движок блочит(. но важно ведь что в csjs.
ПС.Собственно я обошёлся Rpc, но осадочек то остался
 
R

romych2004

Как я понимаю рефреш запускать нужно из клиентского кода? Тогда это ситуацию не изменило.
Либо в кнопке настраиваете partial refresh и partial execute, либо в csjs, да..
Если не ошибаюсь, XSP.partialRefreshGet("#{id:rejectInput}"); - только получит данные с сервера, Вам же их надо отправить, используйте partialRefreshPost или передавайте в Get параметр со значением

По поводу работы кода на одной странице - не думаю что как-то зависит, во всяком случае я не встречался. Разве что может другой элемент есть с таким же айдишником

p.s. код можно в текстовый файл кинуть и приложить
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!