2013-03-21 61 views
1

我有一個帶有驗證參數的小部件,比如「min」和「max」。我想動態設置「min」,因爲它取決於另一個小部件中包含的值。Dojo驗證取決於另一個窗口小部件的值

<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.'" /> 

我怎麼可以這樣做分:testWidget.getValue()

感謝。

回答

1

您只需要使用_WidgetBase#set方法即可。下面是來自Dojo的API文檔的描述:

設置屬性上的小工具 集命名上可以潛在地在小部件二傳手處理微件屬性。例如,如果小部件具有屬性「foo」和「bar」以及名爲_setFooAttr()的方法,則調用myWidget.set(「foo」,「Howdy!」)將等同於調用widget._setFooAttr( 「你好!」)和myWidget.set(「bar」,3)將等同於語句widget.bar = 3;

集()也可以用名稱/值對的哈希值,前稱爲:

與你的widget參考

因此,你可以簡單地做:

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