我正在使用 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"/>
我想说的是掩码包含六个用于数字输入的“字段”,每个字段可以包含 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 之间。
关于jsf - Primefaces InputMask 可选数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39124682/