我想在对话框中屏蔽输入文本字段,我使用的是primefaces 3.5 SNAPSHOT。以下对我来说很有用,除了我想在掩码中包含数字10。
<p:dialog id="inputDlg" modal="true" widgetVar="inputDlgWV">
<p:inputMask id="ageInput" mask="9" placeHolder=" " value="#{bean.age}"/>
</p:dialog>
我尝试使用模式 f:validateRegex ,它正确验证但不掩盖输入,我的主要目标是屏蔽并仅允许0-10的数字。谢谢你的帮助。
答案 0 :(得分:2)
根据Primefaces'组件<p:inputMask>
所基于的Masked Input Plugin for jQuery,mask
属性接受9
作为数字,a
作为字母,*
作为两者之一,?
作为可选用户输入,其他任何作为预定义文本。
在这种情况下,您所需的属性将为mask="9?9"
。当然,它会接受0-99范围内的数字。如果你想要一个严格的0-10范围,你需要为keydown
事件绑定一个额外的处理程序,如:
$(document).ready(function() {
$("#input-mask").keydown(function(e) {
var key = (e.keyCode ? e.keyCode : e.which);
if (!((key == 46) || (key == 8))) {
if ((key < 48) || (key > 57)) {
event.preventDefault();
} else {
var s = $(this).val();
var l = s.length;
if((l >= 2) || ((l == 1) && !((s == '1') && (key == 48)))) {
event.preventDefault();
}
}
}
});
});
根据我的口味,这对用户不够友好,而且在您的位置我会选择<p:spinner>
。