【问题标题】:setStyleClass method is overriding the already defined styleClasssetStyleClass 方法覆盖了已经定义的 styleClass
【发布时间】:2015-05-23 15:57:52
【问题描述】:

我有一个这样的 jsf 代码:

<h:inputText id="emailText" styleClass="emailAddress" value="{bean.emailText}"/>

我正在添加样式 emailAddress 以在 jquery 中使用它来限制用户在文本框中复制和粘贴文本,如下所示:

jQuery(".emailAddress").bind("copy paste",function(e) {
      e.preventDefault();
});

但是在点击提交时,当文本字段被验证并且如果输入的文本格式不正确,bean 方面,我将在文本框中添加另一个样式类以红色突出显示它,例如:

((HtmlInputText) getUIComponent(context, component, "emailText")).setStyleClass("error");

现在的问题是新添加的样式类覆盖了现有的电子邮件地址类,该类用于限制 jquery 中的复制、粘贴。我在 jquery 中仅使用类方法,因为我想将限制功能应用于整个应用程序的所有电子邮件地址字段。所以,请帮助我如何处理这种情况。我的意思是当我们调用 setStyClass() 时如何避免覆盖现有的样式类。谢谢。

【问题讨论】:

    标签: javascript jquery jsf jsf-2


    【解决方案1】:

    您可以尝试另一种方法:

    首先在 bean 中创建方法,该方法返回布尔值以进行文本字段验证。

    在 styleClass 属性中使用该方法在返回 false 时添加类“错误”。

    styleClass="emailAddress #{beanName.isvalidate eq true ? 'no-error' : 'error'}"
    

    在提交按钮上不要忘记更新 h:inputText [使用 update="emailText" 作为提交按钮]

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 2022-01-17
      • 2022-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多