2014-02-18 2 views
1

Я использую Jquery Select2 для моего проекта. Я хочу сохранить значение по умолчанию в одном поле ввода при загрузке страницы. Я попробовал это, установив initSelection, в то время как я инициирую компонент select2, как это.select2 значение по умолчанию для одного поля

$(document).ready(function() { 
     allowClear: true, 
     ajax: { // instead of writing the function to execute the request we use Select2's convenient helper 
      dataType: 'json', 
      url: "public/data.php", 
      data: function (term, page) { 
       return { 
        q: term, // search term 
        component: "map", 
        all_selected: $("#map-all").hasClass("active"), 
        parent_value: $("#city").val(), 
        child_value: "" 
       }; 
      }, 
      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}; 
      } 
     }, 
     initSelection: function(element, callback) { 
      return $.getJSON("public/data.php?q="+element.val()+"&component=map&all_selected=false&parent_value=&child_value=", null, function(data) { 
       if ($.isFunction(callback)) { 
       return callback(data); 
       } 
      }); 
     }, 
     formatSelection: format, 
     formatResult: format, 
}); 

Однако это не работает, как должно быть.

Но, когда я делаю multiple: true, в качестве опции select2, это работает отлично. Как это сделать для одного скрытого поля?

Thanks & С уважением!

ответ

1

Хорошо, я решил это, изменив обратный вызов от return callback(data); до return callback(data[0]);. Я думаю, что причина этого в том, что поле не является множественным полем, оно принимает только один объект для функции обратного вызова.

Смежные вопросы