2016-08-24 3 views
3

Я работаю над небольшим проектом, используя Primefaces.Mainfaces InputMask дополнительные цифры

Я пытаюсь показать значение из моей базы данных с особым образованием хранить строку в моей базе данных, которая выглядит так 40;99;1;0;0;12 Это шесть различных чисел разделенных с ; и они имеют диапазон между 0-99.

Я хочу показать это значение в InputMask, чтобы убедиться, что пользователь не забудет ;. Теперь у меня проблема с форматом.

Я использую этот

<p:inputMask id="myID" placeholder="Value" value="#{myClass.value}" mask="9?9;99;99;99;99;99"/>

Я пытаюсь сказать, что маска содержит шесть «полей» для ввода номера и каждое поле может содержать число от 1-99.

Проблема состоит в том случае, если пользователь записывает вход в этом 30;10;0_;0_;0_;4_ Primefaces преобразует его в 30;10;00;04;__;_

Есть хороший способ, чтобы маска знать, что это может быть номер с одной или двумя цифрами? Или есть способ сказать, если вход имеет только одну цифру положить 0 первый

+1

в JQuery плагин, который использует тот же синтаксис, вы можете определить '[9] ', но в правилях, которые не отображаются правильно. он не понимает это. – Apostolos

ответ

1

я не знаю, если это решение соответствует вашим потребностям, но вы можете определить пользовательские маски

$.mask.definitions['h'] = "[0-9]{0,1}"; 
$("#form\\:your_input_mask_id").mask("hh;hh;hh;hh;hh;hh"); 

в вашем document.ready функция. Это оставит символ _ как есть, но, я думаю, вы можете обработать его в своем коде при разделении строки и обработке каждой части. Я положил форму \: потому что вы обычно помещаете эти входы в форму с формой id. Измените соответственно!

Это имеет недостаток, однако, что если вы не вводить что-то, он будет также проверить, независимо от того, что не между 1 и 99.

+0

Спасибо за ваш ответ. Я попробовал это, но это не сработало. Я думаю, что он не может найти элемент. $ ("# Myform: myElementID"). Маска ("чч; чч; чч; чч; чч; чч"); – TheNewby

+0

проверьте в своем html-коде, что ваш элемент имеет правильный идентификатор, а также проверьте, что этот javascript фактически работает без каких-либо исключений. пожалуйста, также обратите внимание, что вам нужно \\ перед: для того, чтобы идентификатор был «экранирован» и понятен. – Apostolos

+0

Просто еще один. Я забыл сказать, что это внутри Panel & panegrid. Нужно ли мне указывать тему и идентификатор и как я их называю? – TheNewby