Я хочу добавить маску ввода, которая должна принимать телефонные номера в стандартном формате. Я хочу указать «маску ввода» для стандартного формата номера телефона, например: +92 321 9388233. Итак, как указать +92 как константу в маске? Цифра 9 не ведет себя как постоянная. как сделать цифру 9 постоянной.
JSF/Primefaces: как сделать цифру 9 константой в теге Inputmask?
Ответы (2)
Цифра 9 определяется как маска для всех цифр. Если вы хотите, чтобы это было константой, вы можете попробовать написать собственное регулярное выражение следующим образом:
<p:inputMask>
<pe:keyFilter regEx="\\+92[0-9 ]+" />
</p:inputMask>
Обновить
Я нашел лучшее решение, так как это не работает.
Вы можете переопределить определения масок в JavaScript. Просто добавьте этот скрипт в свой файл:
$.mask.definitions['9'] = '';
$.mask.definitions['d'] = '[0-9]';
И теперь вашей маской для цифр будет буква d
, а не цифра 9
. Итак, это может быть ваша маска:
<p:inputMask mask="+92 ddd ddddddd" />
person
Crepi
schedule
10.03.2015
Это не работает! ‹br/›
<p:inputMask id="mnum" value="#{indexManagedBean.mobilenum}" mask="+92-999-9999999" >
‹br/› <pe:keyFilter regEx="\\+92[0-9 ]+" />
‹br/› </p:inputMask>
- person Rabia Naz khan; 11.03.2015
Не используйте атрибут маски, только фильтр.
- person Crepi; 11.03.2015
Я все еще не работаю! если я удалю маску, в текстовом поле не появится никакой маски!
- person Rabia Naz khan; 12.03.2015
Вы включили расширения PrimeFaces?
- person alexander; 12.03.2015
Вы имеете в виду библиотеки простых лиц? @Александр
- person Rabia Naz khan; 17.03.2015
Нет,
<pe:keyFilter>
предоставляется PrimeFaces Extensions. Вам нужно включить xmlns:pe="http://primefaces.org/ui/extensions"
в свой xhtml, чтобы использовать его. Также поместите банку в папку lib. См.: stackoverflow.com/questions/16015302/
- person alexander; 17.03.2015
Да, я включил это расширение @alexander
- person Rabia Naz khan; 17.03.2015
@RabiaNazkhan Вы рассматривали попытку с
<h:inputText>
?
- person alexander; 17.03.2015
Нет, я использовал ‹p:inputText›
- person Rabia Naz khan; 18.03.2015
Я отредактировал ответ и добавил другое решение, так как первое не работает.
- person Crepi; 18.03.2015
@Crepi Что делать, если вы не хотите использовать javascript? Поскольку мне не разрешено использовать его моим учителем!
- person Rabia Naz khan; 13.04.2015
Поскольку Primefaces использует библиотеку jquery для этой маски, я думаю, что это единственный способ. Без javascript, возможно, вы могли бы просто напечатать обычный текст +92, а затем ввести остальные цифры (+92‹p:inputMask mask=999 9999999 /›)... Пользователю будет ясно, что у него нет чтобы ввести +92, и вы просто делаете это в бэкэнде для каждого ввода...
- person Crepi; 14.04.2015
<input type="text" data-inputmask='"mask": "+\\92999-9999999"' data-mask />
Просто добавьте \\ перед 9, и это решит вашу проблему и добавит постоянное значение, например +92, в начале текста.
person
Hussain Ali
schedule
07.03.2018
<h:inputText>
и проверить его с помощью заданного регулярного выражения на стороне сервера? - person alexander   schedule 13.03.2015