2015-04-27 45 views
1

添加一个选项,所述的dijit /形式/选择,这是这样的,labelType不工作的dijit /形式/选择

"<nav asdasd>"

由于的dijit /形式/选择,使用labelType = “html” 的默认情况下,我将labelType设置为'text',但即使如此,该选项也会添加为HTML元素。

HTML

<select id="select1" data-dojo-type="dijit/form/Select" data-dojo-props="labelType:'text'" style="width:150px;"></select> 

的Javascript(道场)

require([ 
"dojo/ready", 
"dojo/_base/lang", 
"dijit/registry"], function (ready,lang,registry) { 

ready(function() { 

    var select1 = registry.byId("select1"); 

    option1 = { 
     value: "o1", 
     label: "option 1", 
     selected: false 
    }; 

    option2 = { 
     value: "o2", 
     label: "option 2", 
     selected: true 
    }; 

    option0 = { 
     value: "o", 
     label: "<nav asdasd>", 
     selected: false 
    }; 

    select1.addOption(lang.clone(option1)); 
    select1.addOption(lang.clone(option2)); 
    select1.addOption(lang.clone(option0)); 

}); 

});

http://jsfiddle.net/gsbc25as/1/

+2

labelType用于告诉select如何处理返回的标签,如果您正在使用dojo存储创建子项。在你的情况下,你将不得不逃离你的标签..“&ltnav asdasd&gt” – tik27

+0

@ tik27,实际上据我所知,它也适用于'options':http://jsfiddle.net/kqpk0wjt/ - 表示,它是否有效取决于Sam007是否使用Dojo 1.10或者不... –

+0

我实际上使用的是1.9,这是问题所在。目前由于一些限制,我想我需要一些字符串转义才能使它工作 – Sam007

回答

0

我注意到你的jsfiddle运行所针对的Dojo 1.9。如果您改用Dojo 1.10运行,它就会像您期望的那样工作。

labelType属性仅在Dojo 1.10中添加。

1

这应该工作:

require([ 
    "dojo/ready", 
    "dojo/_base/lang", 
    "dijit/registry"], function (
ready, 
lang, 
registry) { 

    ready(function() { 

     var select1 = registry.byId("select1"); 

     var option1 = [ 
      { 
      value: "o1", 
      label: "option 1", 
      selected: false 
     }, 
      { 
      value: "o2", 
      label: "option 2", 
      selected: false 
     }, 
      { 
      value: "o", 
      label: "&ltnav Assad&gt", 
     selected: true 
    } ] 

     select1.addOption(lang.clone(option1)); 

    }); 
}); 
1

对于那些谁愿意使用Dojo 1.9与修复,

http://jsfiddle.net/gsbc25as/6/

require([ 
"dojo/ready", 
"dojo/_base/lang", 
"dijit/registry", 
"dojox/html/entities"], function (ready,lang,registry,entities) { 

ready(function() { 

    var select1 = registry.byId("select1"); 

    option1 = { 
     value: "o1", 
     label: "option 1", 
     selected: false 
    }; 

    option2 = { 
     value: "o2", 
     label: "option 2", 
     selected: true 
    }; 

    option0 = { 
     value: "o", 
     label: entities.encode("<nav asdasd>"), 
     selected: false 
    }; 

    select1.addOption(lang.clone(option1)); 
    select1.addOption(lang.clone(option2)); 
    select1.addOption(lang.clone(option0)); 

}); 

});