dojo.data.ItemFileReadStore:Dijit组合框的无效项参数

时间:2010-02-01 15:24:04

标签: javascript dojo

我有一个带有dijit.form.ComboBox的jsp页面,该页面由连接到后端java服务器的dojo.data.ItemFileReadStore填充。它几乎按预期工作,组合框显示结果相关。问题是我收到了'dojo.data.ItemFileReadStore:无效的项参数。'使用键盘箭头键在结果列表中滚动时。然而,使用鼠标选择工作正常。

Dojo版本是1.2.3

这就是我在jsp上放置它的方法:

<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:

{"items":[
    {"name":"My string 1","label":"My string 1"},
    {"name":"My string 2","label":"My string 2"},
    {"name":"Mev.","label":"Mev."}],
"identifier":"name"}

知道这里出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

解决了它。问题似乎是组合框上的onKeyUp事件。当我将其更改为onKeyPress时,向下箭头列表不会再出现错误。

与onKeyUp相比,onKeyPress实际上给了我一个字符的延迟,因为当字符实际上没有输入时会触发事件。知道如何克服这个问题吗?