javascript - setStyleClass 方法覆盖已经定义的 styleClass

标签 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() 时如何避免覆盖现有样式类。谢谢。

最佳答案

您可以尝试另一种方法:

首先在 bean 中创建方法,该方法返回用于文本字段验证的 bool 值。

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

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

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

关于javascript - setStyleClass 方法覆盖已经定义的 styleClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163189/

相关文章:

javascript - 访问嵌套对象中父级的属性

javascript - 为什么$(这个).成功后无法工作:

javascript - 单击切换 div 文本

java - CDI 中的 session 范围是如何实现的?

java - 使用 JSF 进行 Spring 注入(inject)

javascript - 通过javascript将包含数组的对象数组传递给MVC Action

javascript - 具有绝对元素定位的所见即所得

javascript - Three.js 3D 缩放到鼠标位置

javascript - 无法使用 jquery 发布带有 json 的帖子

javascript - 结合 JS 客户端验证时,不会触发 JSF ajax 请求