Событие ComboBox onChange не срабатывает

Кажется, я не могу заставить событие onChange срабатывать в xp: comboBox. djComboBox работает нормально, но у меня есть другие проблемы, которые здесь не актуальны.

Нет проблем с такими событиями, как onBlur

Эти два фрагмента показывают проблему, я, вероятно, упускаю что-то очевидное, но любая помощь приветствуется.

<xp:comboBox id = "comboBox1" style = "width:130.0px"
    value = "#{viewScope.xpcombo}" disableClientSideValidation = "true" immediate = "true">
    <xp:selectItem itemLabel = "" id = "selectItem3"></xp:selectItem>
    <xp:selectItem itemLabel = "Cease" itemValue = "Cease"
        id = "selectItem1">
    </xp:selectItem>
    <xp:eventHandler event = "onChange" submit = "true"
        refreshMode = "full" id = "eventHandler1" disableValidators = "true">
    </xp:eventHandler>
</xp:comboBox>
                <xp:text id = "computedField1">
                    <xp:this.value><![CDATA[#{javascript:var req = getComponent("comboBox1").getValue();
 if ( req == "Cease") {return "Some cease text frome combBox1";}
}]]></xp:this.value>
                </xp:text>
                
                

<xe:djComboBox id = "djComboBox" style = "width:130.0px"
                    value = "#{viewScope.djcombo}" immediate = "true">

                    <xp:selectItem itemLabel = "" id = "selectItem5">
                    </xp:selectItem>
                    <xp:selectItem itemLabel = "Cease"
                        itemValue = "Cease" id = "selectItem6">
                    </xp:selectItem>
                    
                    <xp:eventHandler event = "onChange" submit = "true" refreshMode = "full" 
                        id = "eventHandler2"  disableValidators = "true">
                    </xp:eventHandler>
                    </xe:djComboBox>
        
                
                <xp:text id = "computedField2">
                    <xp:this.value><![CDATA[#{javascript:var req = getComponent("djComboBox").getValue();
if ( req == "Cease") {
return "Some cease text frome djCombBox";}
}]]></xp:this.value>
                </xp:text>

Вместо этого попробуйте проверить источник данных. Попробуйте, например: viewScope.xpcombo == "Прекратить"

Per Henrik Lausten 19.04.2023 13:12

Извините, я пытался сделать это простым примером для иллюстрации. Поле со списком привязано к внутреннему документу, поэтому это не сработает, если я не буду сохранять его при каждом изменении, что кажется неправильным? Как ни странно, он работает так, как предполагалось, если он содержится в диалоговом окне.

Mark Maden 19.04.2023 13:53

Я хочу сказать, что вы должны проверить источник данных в своем вычисляемом поле вместо использования getComponent

Per Henrik Lausten 19.04.2023 14:34

Спасибо, Пер Хенрик, но это не имеет значения. Опять же, это работает с djcombobox, но не с xpcombobox. В мониторе браузера или консоли ничего не срабатывает.

Mark Maden 19.04.2023 14:45

Вы пытались разбить его на новую xpage?

Thomas Adrian 19.04.2023 15:39

Пер Хенрик - вы правы, у меня была опечатка из-за переключения между xp event = "onchange" и xe event = "onChange" Grrrr Извините, что потратил ваше время впустую, ваше решение действительно сработало.

Mark Maden 19.04.2023 16:00

Итак, проверка источника данных вместо использования getComponent работает? Если да, то я добавлю это как ответ, который вы можете принять

Per Henrik Lausten 21.04.2023 08:25

Да, пожалуйста, если вы добавите, я проверю.

Mark Maden 21.04.2023 12:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны проверить источник данных вместо компонента (используя getComponent). Так что попробуйте, например: viewScope.xpcombo == "Cease"

Другие вопросы по теме