Динамическое применение CSS при появлении сообщения JSF + JavaScript - PullRequest
0 голосов
/ 15 апреля 2019

У меня проблема с динамическим применением CSS в компоненте с использованием JavaScript или jQuery. Я попробовал некоторые вещи, как показано ниже.

Это мой компонент, который я пытаюсь применить CSS

<p:inputText id="txtUser" styleClass="form-control"
                                 value="#{registerMB.user.name}"
                                 disabled="#{registerMB.disabledUserDetailsBoolean}"
                                 requiredMessage="Por favor insira um Utilizador(NAME)."
                                 onblur="value=value.toUpperCase()">
                        <p:ajax event="blur" listener="#{registerMB.showUserDetails()}"
                                update="frmRegisterUser:accordion:results  frmRegisterUser:panelButton button"  />
                    </p:inputText>

Это компонент, который я пытаюсь поймать сообщение:

<p:messages id="messages" autoUpdate="true" showDetail="false" closable="true" />

В браузере после компиляции HTML у меня есть этот элемент

<div class="ui-messages-error ui-corner-all"><a href="#" class="ui-messages-close" onclick="$(this).parent().slideUp();return false;"><span class="ui-icon ui-icon-close"></span></a><span class="ui-messages-error-icon"></span>
    <ul>
        <li><span class="ui-messages-error-summary">Nome do Solicitante inválido!</span></li>
    </ul>
</div>

Я использую CSS ui-state-error для компонента с идентификатором txtUser , когда на экране появляется сообщение Nome do Solicitante inválido! экран. Я попробовал этот код, но у меня не было успеха. Следуйте за моим JQuery:

function checkName() {

   var txt = $(".ui-messages-error-summary" )[0].innerText;
   $(txt.replace(/^[ \t]+/gm, ''));

    if($(txt).is(':contains("Nome do Solicitante inválido!")')){
    $('#frmRegisterUser:accordion:txtUser').addClass('ui-state-error')
    }
}

Спасибо за ваше время.

1 Ответ

0 голосов
/ 16 апреля 2019

Я сделал, я использовал DOM и применил CSS.

function checkName() {
   var txt;

   var inputElement = $(".ui-messages-error-summary" )
   if(inputElement[0] != null){
    txt = inputElement[0].innerText;

    if(txt.includes("Name")){
    var element = document.getElementById("frmRequestRegisterUser:accordion:txtUser")
    element.classList.add("ui-state-error");
    }

   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...