如何设置Dojo表单中的selected选项

how do i set selected in Dojo form.select option

本文关键字:表单 selected 选项 Dojo 何设置 设置      更新时间:2023-09-26

大家好,Dojo开发人员,我有一个下拉表单。select,它有几个选项,如何设置要选择的选项。假设我希望在select元素中显示第三个选项。我在看dojo文档,没有看到setSelected()或类似的内容。

感谢

除了值之外,还需要使用displayedValue属性来设置显示的选项。使用类似的东西

selector.set("displayedValue","the_text_of_the_option");

或者你可以使用搜索你的下拉菜单的底层商店

selectorStore.fetch({query:{id: value}, onComplete: function (items) {
              dojo.forEach(items, function(item){
                  selector.set("displayedValue", "the_text_of_the_option");
                  selector.set("value", "the_value_of_the_option");
              });
}});

希望能有所帮助。

我找到了,它是selector.attr("value","the_name_of_the_option");

谢谢你,这是真的并且有效。我已经测试过了。但我发现了我的错误:我正在动态创建选项,当我设置.selected=true时,只要我将其添加到选择器,它就会将sated更改为第一个被选中的选项。或者如果我应用selector.set("displayedValue", "the_text_of_the_option");它在视觉上显示了选定的状态,但事实上,如果我用上面的selector.set更改它,选定的状态后面仍然是第一个不计量的状态。所以我通过手动创建选定状态来解决它。这样,当我添加它时,字母id会保持在所需的字母中,并相应地进行更改。

此处截取:

    //populate latitude selector
    match = false;
    optionsArr = [];
    for(var i = 0; i < namesLength; i++){
        for(var j = 0, len2 = latNames.length; j < len2; j++){
            if(fieldNames[i].toLowerCase() == latNames[j]){
                for (var a = 0; a < namesLength; a++) {
                    var option = {};
                    option.label = fieldNames[i];
                    option.value = i+"";
                    if(i==a){
                        option.selected = true;
                    }
                    optionsArr.push(option);
                }
                    match = true;
            }
        }
    }
    if(match){
        var drop1 = dijit.byId("selectLatitude");
        drop1.addOption(optionsArr);
    }else{
        var drop1 = dijit.byId("selectLatitude");
        drop1.addOption(options);//options is an array of options created originally
    }