2012-08-22 4 views
3

안녕하세요, Dojo 개발자는 form.select를 사용하여 드롭 다운이 있으며 몇 가지 옵션이 있습니다. 선택 옵션을 설정하는 방법은 무엇입니까? select 요소에 세 번째 옵션을 표시하려고한다고 가정 해보십시오. 도장 문서를보고 있었는데 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

나는 ("the_name_of_the_option" "값")가 selector.attr이다, 그것을 발견;

+4

실제로 Dojo 1.7+에서 attr()은 get() 및 set()을 위해 [deprecated] (http://dojotoolkit.org/reference-guide/1.7/dojo/attr.html#id4)입니다. – xqwzts

+0

당신은 맞습니다. 감사합니다 – setlio

1

고맙습니다. 나는 그것을 시험했다. 그러나 나는 나의 버그를 발견했다. 나는 옵션을 동적으로 만들고 있었고 셀렉터에 추가하자마자 .selected = true로 설정하면 처음 선택한 것으로 변경되었다. 또는 적용한 경우 selector.set("displayedValue", "the_text_of_the_option"); 시각적으로 선택된 하나를 표시하지만 실제로는 위의 선택기로 변경하면 여전히 첫 번째 미터가 측정되지 않습니다. 그래서 나는 선택된 상태를 수동으로 생성함으로써 그것을 해결했다. 이렇게하면 편지 ID를 추가 할 때 원하는 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 
    } 
관련 문제