2013-07-12 73 views
0

我想驗證用戶不能通過鍵入微調框的文本框來手動更改微調器值。GXT 3 spinner字段驗證

例如,我從服務器提取的字段銷售倍數= x未修復。 並顯示旋轉器字段= X 像波紋管

spinner.setMinValue = X spinner.setIncrement限制spinner.setValue = X

所以用戶強行選擇一個值,它是多個具有x。例如如果x = 3,則用戶必須輸入3,6,9 ...等等。

所以這裏我的問題是如果我在微調字段文本框中鍵入2。 GXT小部件接受該值。

更多鈔票的解決方案:

  1. 有spinnerfield的任何預定義的屬性,我忘了設置呢?

  2. 是否有任何預定義的驗證器?

  3. 是否可以設置只讀的css字段域的文本框,以便用戶無法專注於文本框但仍然會更改值。

  4. 如果以上都不是手動實現?

回答

0
  1. 我搜索在不同類別的一點,我沒有看到任何這將設置你想要的精確方法。

  2. 不知道一個,甚至有一個驗證器不會更改輸入字段中的值,但也許它已經足夠滿足您的需求。

  3. 您可以通過在spinnerfield調用setEditable(布爾)禁用文本輸入(testSpinner.setEditable(假);)

  4. 也許你可以圍繞IntegerPropertyEditor搜索,我還沒有嘗試過,但只要作爲一種新的微調是這樣的:

 

SpinnerField<Integer> testSpinner = new SpinnerField<Integer>(new NumberPropertyEditor.IntegerPropertyEditor()); 

,你可以看到,有肛門對於IntegerPropertyEditor的構造函數,它採用「NumberFormat」參數,但沒有NumberFormart()構造函數,所以我不確定如何創建自己的構造函數,但這可能是一個想法(將輸入中的數字格式化爲是增量的倍數)。

最後的選擇是Sencha忘記了這種可能性,你應該在論壇上報告這是一個「bug」?

希望能有所幫助,祝你好運:)。