0

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

例如,我从服务器获取的字段 sales multiple = x 未修复。并显示一个限制如下的微调器字段

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

因此,如果 x=3 用户必须输入 3,6,9...,则用户强制选择一个与 xeg 相乘的值,以此类推。

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

可能的解决方案:

  1. 是否有任何我忘记设置的 spinnerfield 的预定义属性?

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

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

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

4

1 回答 1

0
  1. 我在不同的课程中进行了一些搜索,但我没有看到任何一种可以设置你想要的精确方法。

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

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

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

 

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

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

最后一个选项是 Sencha 忘记了这种可能性,您应该在论坛上将其报告为“错误”?

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

于 2013-07-17T13:19:14.710 回答