1

我有一个带有验证参数的小部件,例如“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()

谢谢。

4

1 回答 1

1

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

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

例如,如果小部件具有属性“foo”和“bar”以及名为 _setFooAttr() 的方法,则调用 myWidget.set("foo", "Howdy!") 将等效于调用 widget._setFooAttr("Howdy!" ) 和 myWidget.set("bar", 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);
于 2013-03-22T04:26:21.387 回答