labelType不在dijit / forms / select上工作

时间:2015-04-27 23:09:33

标签: drop-down-menu dojo dijit.form

在dijit / forms / select中添加一个选项,就像这样,

"<nav asdasd>"

自dijit / forms / select以来,使用labelType =&#34; html&#34;默认情况下,我将labelType设置为&#39; text&#39;但即使这样,该选项也会被添加为HTML元素。

HTML

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

Javascript(Dojo)

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/

3 个答案:

答案 0 :(得分: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 :(得分: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));

});

});

答案 2 :(得分:0)

我注意到你的JSFiddle正在针对Dojo 1.9运行。如果切换到针对Dojo 1.10运行,它就会按预期运行。

labelType属性仅在Dojo 1.10中添加。