2013-12-16 23 views
0

dijit.formSelect에 문제가 있습니다. 선택한 옵션을 설정할 수 없습니다. 모든 옵션이 동적으로 배열을 만들고, 조건이 충족되면 'selected'필드를 true로 설정합니다. 이 부분은 괜찮습니다. 생성 된 배열을 검사 할 때 예상대로입니다. select.add 옵션을 수행하면 문제가 발생합니다. 이 경우 원본 요소에서 selected = true를 삭제하고 배열의 첫 번째 요소를 잘못 설정합니다.Dojo form.Select not value value

var select = dijit.byId("nameOfThe form.Select"); 
var arrayOptions = []; 

//Data is another array with more information 
for(var i = 0; i < data.length; i++) { 
newOption = { 
    value: data[i][ident], 
    label: data[i][label] 
}; 

if(exist(currentValue[0]) && currentValue[0] == data[i][ident]) { 
    newOption.selected = true; 
} 

arrayOptions.push(newOption); 
} 

select.addOption(arrayOptions); 

나는 자습서 및 여러 포럼을 다음 그리고 난 같은 그들이 말하는 것들, 시도 :

  • select.set ("값을"여기

    내 코드입니다 , "value wanted"); // 문자열로
  • select.set ("value", value wanted); // 숫자로
  • select.value = "value wanted";
  • select.setDisplayedValue

아무것도 작동하지 않습니다 (값 원), 그리고 그것은 나를 미치게입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사합니다

답변

0

선택 (SELECT)에 옵션을 추가 한 후 selectedIndex 속성을 설정해야 할 수도 있습니다 :

var select = dijit.byId("nameOfThe form.Select"); 
var arrayOptions = []; 
var selectedIndex = 0; 

//Data is another array with more information 
for(var i = 0; i < data.length; i++) { 
    newOption = { 
     value: data[i][ident], 
     label: data[i][label] 
    }; 

    if(exist(currentValue[0]) && currentValue[0] == data[i][ident]) { 
     selectedIndex = i; 
    } 

    arrayOptions.push(newOption); 
} 

select.addOption(arrayOptions); 
select.selectedIndex = selectedIndex; 
+0

내가 당신의 대답 그렉 감사를하지만 –

+0

흠을 작동하지 않습니다. 유일한 다른 대안은 각 OPTION을 for 루프 안에 추가하고 마지막에는 selectedIndex를 설정하는 것입니다. 작동하지 않는 경우 수정 한 후에 SELECT 상자를 변경하는 다른 코드가 페이지에 있습니까? –

+0

그 중 하나가 작동하지 않습니다, 내 코드에서 그 의미에서 간섭이 없습니다. 실제로 코드를 디버깅 할 때 select.addOption을 수행 할 때 첫 번째 요소에 selected = true를 추가합니다. 끝에 또는 루프 내에서 한 번 사용합니다. 구성 요소 자체를 디버깅 해보겠습니다. –

관련 문제