djextListTextBox в IE8 не отображает символ закрытия

Я использую <xe:djextListTextBox> для фильтрации представления. В Firefox все работает нормально. Я могу выбрать значения фильтра, такие как «Автор + дата», и они отображаются как разделенные в двух полях с символом «x» в качестве символа закрытия/удаления, чтобы удалить его из списка фильтров.

Но если я попробую это в IE8, символ «x» не будет отображаться. Остальное с onclick и выбором значений работает нормально.

Глядя на исходный код с помощью инструментов разработчика, я обнаружил, что элемент <span>, содержащий «x» в Firefox, отсутствует в IE. Я изменил свой код и удалил все <this.dojoAttributes> (см. Код ниже), и я вернул «x» в IE 8, но затем полное обновление onclick больше не работало в обоих браузерах. Текстовое поле исчезает на стороне клиента, но представление не обновляется. Обновление руководства сайта возвращает поле, кажется, что onClick просто скрывает поле на стороне клиента и не удаляет значения из ввода.

<xe:djextListTextBox id="filteredByValue" value="#{sessionScope.allDocsFilterColumnValue}">
    <xe:this.dojoAttributes>
        <xp:dojoAttribute name="enabledLinkStyle" value="font-weight:normal">
        </xp:dojoAttribute>
        <xp:dojoAttribute name="readOnly" value="false">
        </xp:dojoAttribute>
    </xe:this.dojoAttributes>
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <xp:actionGroup>
                <xp:executeScript>
                    <xp:this.script><![CDATA[#{javascript://                                
                                        sessionScope.remove('allDocsFilterEnabled');
                                        sessionScope.remove('filterType');
                                        sessionScope.remove('allDocsFilterColumnValue');
                                        sessionScope.selectedTab = sessionScope.remove('filterOldSelectedTab');
                                        }]]></xp:this.script>
                </xp:executeScript>
                <xe:changeDynamicContentAction for="dynamicView">
                </xe:changeDynamicContentAction>
            </xp:actionGroup>
        </xp:this.action>
    </xp:eventHandler>
</xe:djextListTextBox>

С приведенным выше кодом функциональность отлично работает в обоих браузерах, но мне нужно, чтобы в IE8 отображался «x», потому что без него мои пользователи будут сбиты с толку.

Я забыл атрибут? Или мне нужно попробовать добавить «x» с помощью какого-то CSS?


person Michael Saiz    schedule 10.06.2013    source источник


Ответы (1)


хорошо.. я нашел ответ:

            <xp:eventHandler event="onchange" submit="true"
                refreshMode="complete">
                <xp:this.action>
                    <xp:actionGroup>
                        <xp:executeScript>
                            <xp:this.script><![CDATA[#{javascript://                                
                                sessionScope.remove('allDocsFilterEnabled');
                                sessionScope.remove('filterType');
                                sessionScope.remove('allDocsFilterColumnValue');
                                sessionScope.selectedTab = sessionScope.remove('filterOldSelectedTab');
                                }]]></xp:this.script>
                        </xp:executeScript>
                        <xe:changeDynamicContentAction
                            for="dynamicView">
                        </xe:changeDynamicContentAction>
                    </xp:actionGroup>
                </xp:this.action>
            </xp:eventHandler>

Я изменил onClick на событие onChange и удалил атрибуты dojo. Теперь у меня есть «x» в IE8 и Firefox, и функция все еще работает в обоих браузерах.

person Michael Saiz    schedule 10.06.2013