使用 Dojo 更新选项标签
Updating an options label using Dojo
我在 Dojo 中创建了一个 select 和一个可以 'rename' selected 选项的表单,但是我在更改下面列出的选项的标签时遇到了问题select.
我尝试了几种方法:
var selectDropdown = registry.byId("stateSelect");
selectDropdown.updateOption({
value : currentId, // the existing ID to update
label : this.new_name
});
selectDropdown.reset();
不更改标签。
selectDropdown.set("displayedValue", this.new_name);
selectDropdown.reset();
即使
也不起作用
selectDropdown.get("displayedValue");
打印出我要更改的旧标签。
编辑:
这是我创建 Select 并向其添加项目的方式...
var select = new Select({
name : "stateSelect",
}, "stateSelect");
select.addOption({
value : 0,
label : "test"});
您可以通过 .get('selectedOptions')
和 .updateOption()
的组合来实现它:
require(['dijit/form/Select'], function(Select) {
var select = new Select({
name : "stateSelect"
}, "stateSelect");
select.addOption({
value : 0,
label : "test 0"
});
select.addOption({
value : 1,
label : "test 1"
});
select.addOption({
value : 2,
label : "test 2"
});
changeBtn.onclick = function() {
select.get('selectedOptions').label = (new Date()).toString();
select.updateOption(select.get('selectedOptions'))
}
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css">
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">
<div class="tundra">
<div id="stateSelect"></div>
<button id="changeBtn">change selected to current date</button>
</div>
我在 Dojo 中创建了一个 select 和一个可以 'rename' selected 选项的表单,但是我在更改下面列出的选项的标签时遇到了问题select.
我尝试了几种方法:
var selectDropdown = registry.byId("stateSelect");
selectDropdown.updateOption({
value : currentId, // the existing ID to update
label : this.new_name
});
selectDropdown.reset();
不更改标签。
selectDropdown.set("displayedValue", this.new_name);
selectDropdown.reset();
即使
也不起作用selectDropdown.get("displayedValue");
打印出我要更改的旧标签。
编辑: 这是我创建 Select 并向其添加项目的方式...
var select = new Select({
name : "stateSelect",
}, "stateSelect");
select.addOption({
value : 0,
label : "test"});
您可以通过 .get('selectedOptions')
和 .updateOption()
的组合来实现它:
require(['dijit/form/Select'], function(Select) {
var select = new Select({
name : "stateSelect"
}, "stateSelect");
select.addOption({
value : 0,
label : "test 0"
});
select.addOption({
value : 1,
label : "test 1"
});
select.addOption({
value : 2,
label : "test 2"
});
changeBtn.onclick = function() {
select.get('selectedOptions').label = (new Date()).toString();
select.updateOption(select.get('selectedOptions'))
}
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css">
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">
<div class="tundra">
<div id="stateSelect"></div>
<button id="changeBtn">change selected to current date</button>
</div>