使用AutoSuggest jQuery插件动态传递数据中的数据对象

时间:2010-08-16 08:04:29

标签: javascript jquery jquery-plugins autocomplete autosuggest

AutoSuggest jQuery Plugin需要一个已经可用的数据对象才能运行。 我需要使用第一个输入中的用户选择作为第二个输入中的数据。

以下代码段在firebug中引发错误

  

未定义availableTeachers

var labs = {lesson:
                [
                    {
                        name: "FOO LESSON",
                        professors: [
                            { lab: "FOO TEACHER [Monday 3 pm]" },
                            { lab: "FOO TEACHER [Thursday 7 pm]" }
                        ]
                    },
                    {
                        name: "FOO LESSON",
                        professors: [
                            { lab: "FOO TEACHER [Tuesday 10 am]" }
                        ]
                    }
                ]
        };

firstStep.find("form input[type=text]").autoSuggest(labs.lesson, {
    selectedItemProp: "name",
    searchObjProps: "name",
    selectionLimit: 1,
    resultClick: function(data){
        availableTeachers = data.attributes;
    },
});

secondStep.find("form input[type=text]").autoSuggest(availableTeachers.professors, {
    selectedItemProp: "lab",
    searchObjProps: "lab",
    selectionLimit: 1,
});

修改

更多测试,我使用一些虚拟数据预测availableTeachers,并在用户在第一个输入中选择lesson.name后用真实数据填充它。

  

第二个输入只能看到虚拟数据

到目前为止,似乎autoSuggest插件只能使用静态数据对象或JSON请求。

1 个答案:

答案 0 :(得分:0)

哪里有可用的教师定义?你应该有一些创建变量的地方。仅仅在lambda函数内为其赋值是不够的,因为 变量的范围是本地的,除非它是在全局范围内创建的。