2012-08-11 57 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