以编程方式设置 dijit NumberSpinner 值
Setting dijit NumberSpinner value programmatically
我想以编程方式更改 dijit/form/NumberSpinner
值。如何使用 'data-dojo-attach-point
' 或 id
?
实现此目的
下面的代码更新了 Number Spinner 文本,但它给了我
"Uncaught TypeError: c.advice.apply is not a function" error.
如何以编程方式正确更改值?
this.typeResidential.set('value', 30);
这取决于您编写应用程序的方式,
如果您正在使用 data-dojo-attach-point
和访问 this.your-attach-name 编写小部件,或者使用 id
并访问小部件,则抛出 registry
.
以下示例使用 id
并使用 registry.by("widgetId").set("value",val);
使用此小部件的 dijit/registry
设置 spinier 的值
实例:https://jsfiddle.net/gibbok/9rLtzm1u/
require(["dijit/registry","dojo/ready","dojo/parser"],
function(registry,ready,parser){
parser.parse();
ready(function(){
registry.byId("typeResidential").set("value",213);
});
}
);
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.11.3/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet"/>
<div class="claro">
<div data-dojo-type="dijit/form/NumberSpinner" id="typeResidential"></div>
</div>
在 dojo 中,您可以通过编程方式(如 bRIMOs 答案所示)或以声明方式设置小部件的属性。
以编程方式使用时,请确保 this
对您的小部件具有正确的范围。
this.typeResidential.set('value', 30);
或者,下面是一个声明性语法的示例,其中包括在您的 HTML 标记中添加名称 value
.
的 属性
您可以通过两种方式获得相同的结果,这实际上取决于您的应用程序设计。
require(["dojo/parser", "dijit/form/NumberSpinner"]);
<script>
var dojoConfig = {
parseOnLoad: true,
isDebug: true,
};
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.11.3/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet"/>
<div class="claro">
<input data-dojo-type="dijit/form/NumberSpinner"
id="integerspinner2"
value="1000"
data-dojo-props="smallDelta:10, constraints:{min:9,max:1550,places:0}"
name="someNumber"
/>
</div>
我想以编程方式更改 dijit/form/NumberSpinner
值。如何使用 'data-dojo-attach-point
' 或 id
?
下面的代码更新了 Number Spinner 文本,但它给了我
"Uncaught TypeError: c.advice.apply is not a function" error.
如何以编程方式正确更改值?
this.typeResidential.set('value', 30);
这取决于您编写应用程序的方式,
如果您正在使用 data-dojo-attach-point
和访问 this.your-attach-name 编写小部件,或者使用 id
并访问小部件,则抛出 registry
.
以下示例使用 id
并使用 registry.by("widgetId").set("value",val);
dijit/registry
设置 spinier 的值
实例:https://jsfiddle.net/gibbok/9rLtzm1u/
require(["dijit/registry","dojo/ready","dojo/parser"],
function(registry,ready,parser){
parser.parse();
ready(function(){
registry.byId("typeResidential").set("value",213);
});
}
);
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.11.3/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet"/>
<div class="claro">
<div data-dojo-type="dijit/form/NumberSpinner" id="typeResidential"></div>
</div>
在 dojo 中,您可以通过编程方式(如 bRIMOs 答案所示)或以声明方式设置小部件的属性。
以编程方式使用时,请确保 this
对您的小部件具有正确的范围。
this.typeResidential.set('value', 30);
或者,下面是一个声明性语法的示例,其中包括在您的 HTML 标记中添加名称 value
.
您可以通过两种方式获得相同的结果,这实际上取决于您的应用程序设计。
require(["dojo/parser", "dijit/form/NumberSpinner"]);
<script>
var dojoConfig = {
parseOnLoad: true,
isDebug: true,
};
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.11.3/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet"/>
<div class="claro">
<input data-dojo-type="dijit/form/NumberSpinner"
id="integerspinner2"
value="1000"
data-dojo-props="smallDelta:10, constraints:{min:9,max:1550,places:0}"
name="someNumber"
/>
</div>