setStyleClass方法覆盖已定义的styleClass

时间:2015-03-20 09:23:15

标签: javascript jquery jsf jsf-2

我有一个像这样的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");

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

1 个答案:

答案 0 :(得分:2)

您可以尝试其他方法:

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

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

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

不要忘记更新h:inputText [使用update =“emailText”提交按钮]