2010-02-01 5 views
2

dijit.form.ComboBox가있는 jsp 페이지가 있습니다.이 페이지는 백엔드 Java 서버에 연결되는 dojo.data.ItemFileReadStore로 채워집니다. 거의 예상대로 작동하며, 콤보 박스는 결과를 수정하여 보여줍니다. 문제는 'dojo.data.ItemFileReadStore : 잘못된 항목 인수입니다.'입니다. 키보드 화살표 키로 결과 목록에서 스크롤 할 때. 그러나 마우스로 선택하면 정상적으로 작동합니다.dojo.data.ItemFileReadStore : Dijit 콤보 박스의 항목 인수가 올바르지 않습니다.

{"items":[ 
    {"name":"My string 1","label":"My string 1"}, 
    {"name":"My string 2","label":"My string 2"}, 
    {"name":"Mev.","label":"Mev."}], 
"identifier":"name"} 
: 여기
<input type="text" id="value" 
dojoType="dijit.form.ComboBox" 
autoComplete="false" 
searchAttr="name" 
forceValidOption="true" 
hasDownArrow="false" 
onKeyUp="populateValue" 
/> 

<script type="text/javascript"> 
function populateValue() { 
    valueWidget = dijit.byId("value"); 
    var selectedValue = valueWidget.getValue(); 
    var url = "${contextPath}/someUrl?selectedValue=" + selectedValue + "%"; 
    store = new dojo.data.ItemFileReadStore({url:url}); 
    valueWidget.store = store; 
    return; 
    } 
</script> 

내가 서버에서받은 JSON입니다 :

도장 버전이 내가 내 JSP에 장소에 보관 한 방법입니다 1.2.3

입니다

무엇이 잘못 되었습니까?

답변

2

해결되었습니다. 문제가 콤보 상자의 onKeyUp 이벤트 인 것 같습니다. 이것을 onKeyPress로 바꿨을 때, 목록을 아래로 가리키면 오류가 더 이상 발생하지 않습니다.

onKeyUp과 비교하여 onKeyPress는 문자가 실제로 입력되지 않았을 때 이벤트가 트리거되기 때문에 실제로 한 문자 지연이 발생합니다. 내가 어떻게 이걸 극복 할 수 있었는지 아는가?

+0

감사합니다. 그것을 해결했습니다. 그러나 왜 이런 일이 일어 났는지는 알 수 없다. –

+0

@NeelBasu 마지막으로 문제를 해결 했습니까? 이유를 찾았 니? – MockerTim

+0

글쎄, 2 살짜리 이야기이고, 내가 뭘하려고했는지 기억이 나지 않는다. :) –

관련 문제