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