2012-08-22 34 views
3

您好Dojo開發人員,我有一個下拉form.select,它有幾個選項,如何設置一個選項來選擇。假設我想在select元素中顯示第三個選項。我正在查看dojo文檔,但沒有看到setSelected()或類似文檔。如何設置在Dojo中選擇form.select選項

由於

+2

嘗試'selectWidget.set( '值',your_option_value)'內部 – Serjio

+0

感謝serjio,它是ATTR,但你給我正確的方向,在這裏找到答案:HTTP:/ /stackoverflow.com/questions/2215979/setting-the-value-selected-option-of-a-dijit-form-select-widget – setlio

+0

這並不重要。主要是它對你有幫助,喜歡;) – Serjio

回答

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"); 
       }); 
}}); 

希望有所幫助。

+0

謝謝,這是真實的,正在工作,並把我放在正確的道路上。我已經測試過它。但是,我發現了我的錯誤並實施了不同的解下面: – setlio

1

我發現它,它是selector.attr( 「值」, 「the_name_of_the_option」);

+4

其實在Dojo 1.7+ attr()是[不推薦](http://dojotoolkit.org/reference-guide/1.7/dojo/attr.html#id4)以get()和set()爲支持。 – xqwzts

+0

你是對的,它也適用於設置:)。謝謝 – setlio

1

謝謝,這是真實的和工作。我已經測試過它。然而,我發現了我的錯誤:我正在動態地創建選項,並且當我將它添加到選擇器時,將它設置爲.selected = true時,它將更改爲選定的第一個選項。 或者如果我申請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 
    } 
相關問題