Dojo验证取决于另一个窗口小部件值

时间:2013-03-21 16:12:34

标签: widget constraints dojo

我有一个带有验证参数的小部件,例如“min”和“max”。我希望动态设置“min”,因为它取决于另一个小部件中包含的值。

<input id="test" type="text"
    data-dojo-type="dijit/form/NumberTextBox"
    name= "elevation"
    required="true"
    value="3000"
    data-dojo-props="constraints:{min:-20000,max:20000,places:0},
    invalidMessage:'Invalid elevation.'" />

我怎样才能做像min:testWidget.getValue()

这样的事情

感谢。

1 个答案:

答案 0 :(得分:1)

您需要做的就是使用_WidgetBase#set方法。以下是Dojo的API文档中的描述:

  

在小部件上设置属性   在窗口小部件上设置命名属性,这些属性可能由窗口小部件中的setter处理。

     

例如,如果窗口小部件具有属性&#34; foo&#34;和&#34; bar&#34;和一个名为_setFooAttr()的方法,调用myWidget.set(&#34; foo&#34;,&#34;你好!&#34;)等同于调用widget._setFooAttr(&#34;你好!&# 34;)和myWidget.set(&#34; bar&#34;,3)等同于语句widget.bar = 3;

     也可以使用名称/值对的散列调用

set(),例如:

因此,使用您的小部件参考,您只需执行以下操作:

var elevationInput = dijit.byId("test");
var constraints = {
  min: testWidget.getValue(); // or testWidget.get("value")
  max: elevationInput.constraints.max
};
elevationInput.set("constraints", constraints);