GXT 3 spinnerField验证

时间:2013-07-12 23:07:38

标签: gwt extjs gxt

我想验证用户无法通过键入微调器的文本框来手动更改微调器值。

例如,我从服务器获取的字段销售倍数= x未修复。 并显示一个限制类似于下面的旋转器字段

spinner.setMinValue = x spinner.setIncrement = x spinner.setValue = x

所以用户强行选择一个x的倍数值。例如如果x = 3,则用户必须输入3,6,9 ...依此类推。

所以我的问题是如果我在微调框字段文本框中键入2。 GXT小部件接受该值。

可行的解决方案:

  1. 我忘记设置spinnerfield的预定义属性了吗?

  2. 是否有预定义的验证器?

  3. 我可以设置仅由css读取的微调器字段的文本框,这样用户就无法关注文本框但仍会更改值。

  4. 如果以上都没有手动实现?

1 个答案:

答案 0 :(得分:0)

  1. 我在不同的课程中搜索了一下,但我没有看到一个可以设定你想要的精确方法。

  2. 不知道一个,即使有一个,验证器也不会改变输入字段中的值,但也许它足以满足您的需求。

  3. 您可以通过在spinnerfield上调用setEditable(boolean)来禁用文本输入(testSpinner.setEditable(false);)

  4. 也许你可以在IntegerPropertyEditor周围搜索,我没试过,但只要新的Spinner是这样的:

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

    你可以看到有另一个IntegerPropertyEditor的构造函数,它接受一个“NumberFormat”参数,但是没有NumberFormart()构造函数,所以我不确定你是如何创建自己的构造函数的,但是这可能是一个想法(将输入中的数字格式化为增量的倍数)。

    最后一个选择是Sencha忘记了这种可能性,你应该在论坛上报告这个“bug”吗?

    希望有所帮助,祝你好运:)。