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