2012-08-11 56 views
1

我在xpage上创建了一个数字字段。但是输入检查无法正常工作。它只接受预期行为的数字,但输入数字的数量未经验证。由于regExp \ d {6},接受的数字不能超过6位。Xpages Dojo dijit.form.numbertextbox

这里是关于XPage中的代码:

<xe:djNumberTextBox id="inputTextMidasId" dojoType="dijit.form.NumberTextBox" value="#{complaintDocument.midasId}" javaType="short" regExp="\d{6}"> <xe:this.constraints> <xe:djNumberConstraints pattern="######"> </xe:djNumberConstraints> </xe:this.constraints> </xe:djNumberTextBox>

能有人告诉如何使这项工作的代码?谢谢。

回答

1

我无法解释为什么正则表达式不能按预期工作。

根据XPages Extension Library的书籍,您可以使用xe:djNumberConstraintsminmax属性来控制允许的最小值和最大值。所以也许你应该使用那些而不是正则表达式?

下不正是你想要什么:

<xe:djNumberTextBox id="djNumberTextBox1" value="#{viewScope.test}"> 
    <xe:this.constraints> 
     <xe:djNumberConstraints min="1" max="999999"></xe:djNumberConstraints> 
    </xe:this.constraints> 
</xe:djNumberTextBox> 

更新:

如果你写一个xe:djNumberTextBox它将被转换001至1当用户离开现场。这是你想要的吗?

使用xe:djValidationTextBox可以使用正则表达式验证输入。以下内容将进行您所需的验证,并允许输入如001保留在现场:

<xe:djValidationTextBox id="djValidationTextBox1" regExp="\d{6}"></xe:djValidationTextBox> 
+1

谢谢您的回答。您的代码运行良好,但不幸的是,它不包括根据正则表达式\ d {6}例如数字像0 #####或00 ####等 – jlehocz 2012-08-11 21:30:54

+0

我已经更新了我的答案,并附上了一些关于使用'xe:djValidationTextBox'的观察结果 – 2012-08-12 05:58:00

+0

您好,我一直在想这个,我接受你的答案,包括原来,因为那些让我找到了解决办法。我同意,如果我想输入前导零的值,在这种情况下,我应该使用数字框的文本框instad。我认为这里最好的工具是电话号码簿。 谢谢你的帮助 – jlehocz 2012-08-13 14:55:55