7

我是 Javascript、jQuery、Ajax 和 JSON 世界的新手。

我需要做的是混合 SELECT2 可用的 2 个选项

占位符

$("#e2_2").select2({
    placeholder: "Select a State"
});

加载远程数据

$("#e6").select2({
     placeholder: "Search for a movie",
     minimumInputLength: 1,
     ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
         url: "http://api.rottentomatoes.com/api/public/v1.0/movies.json",
         dataType: 'jsonp',
         data: function (term, page) {
             return {
                 q: term, // search term
                 page_limit: 10,
                 apikey: "ju6z9mjyajq2djue3gbvv26t" // please do not use so this example keeps working
             };
         },
         results: function (data, page) { // parse the results into the format expected by Select2.
             // since we are using custom formatting functions we do not need to alter remote JSON data
             return {
                 results: data.movies
             };
         }
     },
     formatResult: movieFormatResult, // omitted for brevity, see the source of this page
     formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page
     dropdownCssClass: "bigdrop" // apply css that makes the dropdown taller
 });

从 Select 网站可以看出,这些选项完全不同。当我单击加载远程数据字段时,它会打开一个搜索选项。但我不想那样。我希望下拉菜单中包含 PlaceHolder 示例中的可用选项。

在占位符示例中,下拉列表中可用的选项在 HTML 中进行了硬编码。我需要的是,当您打开时,它会转到 json 文件并返回 json 上可用的信息。

理想的做法是将占位符 Select2 的 UI 与另一个 Select2 示例中的加载远程日期的功能(在服务器上获取 json)一起使用。

任何想法?如果 2 不能组合,我愿意接受任何超快速的 Ajax 解决方案。

4

1 回答 1

1

如果您只需要通过 ajax 将数据加载到您的 select2(无需通过远程 api 搜索),您可以这样做:

$.get( "/path/to/your/data.json", function(data){window.ajaxData=data;});
$("#e2_2").select2({data: window.ajaxData, placeholder: "Select a State"});

(使用全局变量通常是不好的做法,但这只是一个例子)

于 2015-11-15T22:12:22.027 回答