Primefaces InputMask 可选数字

Primefaces InputMask optional digits

我正在使用 Primefaces 进行一个小项目。

我正在尝试使用特殊格式显示我的数据库中的值 我在我的数据库中存储了一个字符串,看起来像这样 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"/>

我想说的是掩码包含六个 "fields" 用于数字输入,每个字段可以包含 1-99 之间的数字。

问题是如果用户这样写输入 30;10;0_;0_;0_;4_Primefaces 会将其转换为 30;10;00;04;__;_

有什么好的方法可以让mask知道它可以是一位数或两位数的数字吗? 或者有没有办法说,如果输入只有一个数字,请先输入 0

我不知道这个解决方案是否符合您的需求,但您可以定义一个自定义掩码

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

在您的 document.ready 函数中。这将使 _ 字符保持原样,但我想您可以在拆分字符串和处理每个部分时在代码中处理它。我放了 form\: 是因为您通常将这些输入放在带有 id 表单的表单中。相应更改!

不过这有一个缺点,如果您不输入某些内容,它也会生效,无论是否在 1 到 99 之间。