当消息出现JSF + JavaScript时动态应用CSS

问题描述 投票:0回答:1

我在使用JavaScript或jQuery在组件中动态应用css时遇到问题。我尝试了一些如下所示的东西。

这是我的组件,我正在尝试应用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>

当消息Nome doSolicitanteinválido时,我正在使用id txtUser对组件应用CSS ui-state-error!出现在屏幕上。我试过这段代码但是没有成功。关注我的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')
    }
}

谢谢你的时间。

javascript jquery css jsf-2.2
1个回答
0
投票

我做了,我使用了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");
    }

   }
}
© www.soinside.com 2019 - 2024. All rights reserved.