1

dijit Selectウィジェットがあり、ユーザーがドロップダウンアイテムの1つをクリックしたときに何かをする必要があります。つまり、クリックしたアイテムにアクセスし、情報を取得して、自分の関数の1つを呼び出す必要があります。

選択にonChangeをアタッチすることをテストしましたが、選択されたテキスト値を正常に取得できます。しかし、値ではなくオブジェクトが必要です。オブジェクトは、data-info-attributeにより多くの値を保持します。

基本的に私が達成しようとしているのは、リストに1つの値を表示することですが、選択すると他のフィールドに入力するためにさらに多くの値を送信します。

背景:これは、サーバー機能によってAJAXを介して入力される先行入力フィールドです。付属のストアがありますが、(私が知る限り)空であるため、次のことを試してみませんでした:.store.fetchItemByIdentity-常に何も返しません。

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

ログにitem-object-オブジェクトとrequest-objectが表示されると思いますが、どちらも未定義です。 ta.getValue()期待どおりに選択された値を取得します。

これを達成するための最良の方法は何ですか?

4

1 に答える 1

2

Dojo Comboboxからクエリをトリガーするには不十分な onChange に対する私の回答と、そこに記載されている 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);
});
于 2012-09-14T09:54:12.000 に答える