我有一个带有验证参数的小部件,例如“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()
这样的事情感谢。
答案 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);