Dojo:访问dijit.form.Select中的被点击项目?

时间:2012-09-14 08:44:46

标签: javascript dojo dijit.form

我有一个dijit Select小部件,当用户点击其中一个下拉项时需要做一些事情。含义我需要访问被点击的项目,检索一些信息,然后调用我自己的一个函数。

我已经测试过在选择上附加一个onChange,我可以选择正确的文本值。但我需要对象而不是价值。该对象在data-info-attribute中包含更多值。

基本上我想要实现的是在列表中显示一个值,但在选择时发送更多值以填充其他字段。

背景:这是一个由服务器功能通过AJAX填充的预先输入字段。有一个商店附加但它是空的(据我所知)所以我尝试使用:.store.fetchItemByIdentity - 总是没有成功。

ta.store.fetchItemByIdentity({
    identity: ta.getValue(),
    onItem: function(item, request){
        console.log(item),
        console.log(request)
    }
})

我希望日志显示item-和request-object,但它们都是未定义的。 ta.getValue()按预期获得所选值。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

查看我对onChange not sufficient to trigger query from Dojo Combobox的回答以及那里提到的jsFiddle。我在那里添加了特定于您需求的代码:

select.dropDown.on("itemClick", function(dijit, event) {
    var node = dijit.domNode;
    console.log(domAttr.get(node, "data-info-attribute"));
    // or
    console.log(node.dataset.infoAttribute);
});