依赖于另一个小部件值的 Dojo 验证
Posted
技术标签:
【中文标题】依赖于另一个小部件值的 Dojo 验证【英文标题】:Dojo validation that depends on another widget value 【发布时间】:2013-03-21 16:12:33 【问题描述】:我有一个带有验证参数的小部件,例如“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】:您需要做的就是使用_WidgetBase#set
方法。以下是 Dojo 的 API 文档中的描述:
在小部件上设置属性 在小部件上设置命名属性,这些属性可能由小部件中的设置器处理。
例如,如果小部件具有属性“foo”和“bar”以及名为 _setFooAttr() 的方法,则调用 myWidget.set("foo", "Howdy!") 将等效于调用 widget._setFooAttr("你好!") 和 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);
【讨论】:
以上是关于依赖于另一个小部件值的 Dojo 验证的主要内容,如果未能解决你的问题,请参考以下文章