使用Dojo更新选项标签

时间:2015-08-11 13:58:47

标签: javascript dojo

我有一个在Dojo中创建的选择和一个可以重命名'选定的选项,但是我在更改选择下列出的选项的标签时遇到问题。

我尝试了几件事:

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");

打印出我想要更改的旧标签。

修改 这是我如何创建选择并向其添加项目...

var select = new Select({
    name : "stateSelect",
    }, "stateSelect");

select.addOption({
    value : 0,
    label : "test"});

1 个答案:

答案 0 :(得分:0)

您可以结合使用.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>