У меня есть два 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 и буквенно-цифровой код, поскольку они являются обычными функциями и уже работают с другими элементами.
Кстати, если я устанавливаю класс перед запуском кода в любом из этих inputText, он работает отлично. Это не работает, только когда я установил его динамически.
Я хочу, чтобы эти inputText в некоторых случаях были числовыми, а в других - буквенно-цифровыми, но они всегда числовые.