4

こんにちはDojo開発者、私はドロップダウンform.selectを持っています、そしてそれはいくつかのオプションを持っています、どのように選択されるオプションを設定するか。select要素に3番目のオプションを表示したいとします。dojoドキュメントを見ていましたが、setSelected()などが表示されません。

ありがとう

4

3 に答える 3

2

表示されるオプションを設定するには、value に加えて、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");
              });
}});

それが役立つことを願っています。

于 2012-08-24T10:04:16.770 に答える
1

私はそれを見つけました、それはselector.attr( "value"、 "the_name_of_the_option");です。

于 2012-08-22T17:25:26.457 に答える
1

ありがとう、これは真実であり、機能しています。私はそれをテストしました。ただし、バグを発見しました。オプションを動的に作成していました。セレクターに追加するとすぐに .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
    }
于 2012-08-24T23:05:00.060 に答える