Javascript и Xpages

Тема в разделе "Lotus - Xpages", создана пользователем doka, 9 авг 2010.

  1. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    Два варианта кода:
    1)
    <input id="c555" value="1232"></input>
    <script type="text/javascript">
    function init () {
    value1 = document.getElementById("c555").value;
    alert(value1+" - Вот");
    }


    2)
    <xp:inputText id="c555" value="1232"></xp:inputText>
    <script type="text/javascript">
    function init () {
    value1 = document.getElementById("c555").value;
    alert(value1+" - Вот");
    }

    В первом варианте alert отрабатывает нормально, а во втором нет. В чем проблема?
     
  2. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Не оно?
     
  3. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    И в клиенте и в браузере у меня ошибку не выдает. Доходит до этой сточки и дальше код просто не выполняется
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    doka
    Скорее всего ты не тот компонент вызываешь...
    Дело в том, что xpage-компоненты именуются в коде по другому.
    В дизайнере - одно, в коде страницы - другое.
    Попробуй найти название компонента в коде страницы....

    попробуй вот так
    Код (PHP):
    document.getElementById("#{id:c555}").value;
     
  5. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Ставим firefox + firebug, открываем страницу, открываем firebug, смотрим dom на предмет наличия элемента с указанным id.
    если не помогает - ставим брекпоинт внутрь функции, открываем консоль javascript, далее дебажим как обычно.
    p.s. а где собсна вызов функции init?
     
  6. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    Не помогло. А у тебя что так заработало?

    Вызов в кнопке. С ним все нормально, если только для функций с элементами xpages не требуется специального вызова)
     
  7. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    я ж говорю - посмотрите код страницы в браузере. не будет там элемента с вашим id. xpage затирает его своим спец id.
    http://www-10.lotus.com/ldd/ddwiki.nsf/dx/...t_on_xpages.htm
    а firebug поставьте. это необходимый инструмент при разработке любых web приложений, в т.ч. с использованием xpages.
     
  8. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    turumbay
    Спасибо, я понял, сижу разбираюсь

    Может что-то не так делаю? В коде id="view:_id1:_id2:_id5:c555". Использовал конструкцию из примера:

    var comboID = 'view:_id1:c555'; / var comboID = 'view:_id1:_id2:_id5:c555';

    value1 = document.getElementById("comboID").value;

    Какое обращение к элементу правильное?
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Лови рабочий пример. Только учти, если сервер и дизайнер разных версий - СОХРАНЯТЬ ИЗМЕНЕНИЯ КОДА ТОЛЬКО ИЗ ЗАКЛАДКИ SOURCE
    Дело в том, что у дизайнеров 8.5 и 8.5.1 разные теги для описания события клиента!!!!
    И код из дизайнера 8.5.1 не будет выполняться на сервере 8.5

    Мой пример адаптирован для дизайнера 8.5

    Код (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:inputText id="c555"></xp:inputText>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:button id="SwitchLink1_2" rendered="true" value="TEST">
    <xp:eventHandler event="onclick">
    <xp:this.handlers>
    <xp:handler type="text/javascript">
    <xp:this.script><![CDATA[
    var switch_id = '#{java script:getClientId("c555")}';
    var switch_code = document.getElementById( switch_id ).value;

    alert( switch_code )

    ]]></xp:this.script>
    </xp:handler>
    </xp:this.handlers>
    </xp:eventHandler>
    </xp:button>       
    </xp:view>
     
  10. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    NickProstoNick
    Да, у меня 8.5.1 и 8.5. Твой код не пошел.
    Изменил var switch_code = document.getElementById( switch_id ).value;
    на var switch_code = document.getElementById('view:_id1:c555').value; - заработало
    Скопировал код в проект - выдает ошибку
    document.getElementById("view:_id1:c555") has no properties - кавычки двойные(может в них проблема?)


    Чудеса в решете. Спасибо, постараюсь разобраться.
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Я же тебе говорю.... открываешь свою тестовую форму... или чего там у тебя...
    переходишь в закладку Source....
    Копируешь то что я тебе предложил... и заменяешь в своей форме... ВСЕ ЦЕЛИКОМ!!!
    И в ЭТОЙ ЖЕ ЗАКЛАДКЕ Source сохраняешь!
    Все работает!

    А чтоб не заниматься ерундой - поставь дизайнер той же версии что и сервер!
     
  12. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    NickProstoNick
    Я не сразу заметил что ты код изменил. В таком варианте работает, но если тоже самое поместить в функцию init() и по нажатию её вызвать пишет ошибку document.getElementById( switch_id ) has no properties
    Я оставил определение switch_id за пределом функции, а init определил как function init(value1), и сделал вызов init(switch_id)

    Ещё раз спасибо за помощь!
     
  13. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Не за что :)
     
Загрузка...
Похожие Темы - Javascript Xpages
  1. itincorp
    Ответов:
    0
    Просмотров:
    60
  2. itincorp
    Ответов:
    0
    Просмотров:
    72
  3. Aaleks111
    Ответов:
    2
    Просмотров:
    188
  4. SvetlanaL
    Ответов:
    0
    Просмотров:
    163
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    181

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