2015-04-27 43 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)); 

}); 

});