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

标签 javascript jquery css jsf-2.2

我在使用 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 do Solicitante invá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')
    }
}

感谢您的宝贵时间。

最佳答案

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

   }
}

关于javascript - 当消息出现时动态应用 CSS JSF + JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693370/

相关文章:

javascript - 提交后无法取消禁用已从数据库获取其值的复选框

javascript - 日期选择器的 ngMaterial 在 Angular JS 中不起作用

javascript - 从输入字段为元素插入 CSS

javascript - 即使在调整浏览器窗口大小后,如何在 div 底部启动 div 的滚动条

html - 伪选择器首创不起作用

javascript - extjs 全局处理 http 响应

javascript - 如何在 Javascript 中推送代理对象中的数组值

javascript - 如何修改此 javascript 代码以添加文本框并接收用户的输入?

javascript - 我希望在用户单击播放按钮时更改电台名称

html - 对齐两个不同的段落