我有两个jsf inputText,它们的类是从javascript动态更改的。这些inputText的类开始为数字形式,并在某些条件后变为字母数字形式。
<h:form id="mainForm">
<h:inputText id="otraIdUno"
...
class="form-control soloNumeros" maxlength="15"
...>
</h:inputText>
从chrome中,如果我检查元素,则可以看到类的更改,但是inputText本身什么也没有发生,我的意思是我只能键入数字而不是字母。
<h:inputText id="otraIdUno"
...
class="form-control alfanumerico" maxlength="15"
...>
</h:inputText>
从javascript中,我通过以下方式设置inputText的类:
$("#mainForm\\:otraIdUno").addClass("alfanumerico");
一个朋友告诉我尝试使用此指令来更新元素,但是它不起作用。
$("#mainForm\\:otraIdUno").load(location.href + " #mainForm\\:otraIdUno");
添加类后,我还尝试再次设置事件:
$(".soloNumeros").keypress(onlyNumbers);
$(".alfanumerico").keypress(alphaNumeric);
我不会在这里放置 onlyNumbers 和 alphaNumeric 代码,因为它们只是常规函数,它们已经在与其他元素一起使用。
顺便说一句,如果我在这些inputText中的任何一个上运行代码之前设置了类,那么它会完美地工作。仅当我动态设置它时,它才起作用。
我想要的是这些inputText在某些情况下为数字,在其他情况下为字母数字,但始终为数字。