2017-02-09 2 views
0

Я использую ВЫБ.2, everithing работает нормально, но выбор по умолчанию не работает,InitSelection не работает в ВЫБ.2 4.0.3 JS

Я использую ВЫБ.2 4.0.3 JS

Я использую initSelection, но его дисплей как этот скриншот,

enter image description here

var data = <?php echo $cat_json; ?>; 
function templateResult(node) { 
    var $result = $('<span style="padding-left:' + (20 * node.level) + 'px;">' + node.text + '</span>'); 
    return $result; 
}; 
function formatSelection(node) { 
    return node.sel_text; 
}; 
$("#mySelect").select2({ 
    initSelection: function (element, callback) { 
     var file_id = 29; 
     $.ajax({ 
      url: "/admin/folders/get_selected_cat/" + file_id, 
      dataType: "json", 
     }).done(function (data) { 
      console.log(data); //Object {id: "1", text: "Product"} 
      callback(data.text); 
     }); 
    }, 
    placeholder: 'Select an option', 
    width: "600px", 
    tags: true, 
    data: data, 
    templateSelection: formatSelection, 
    templateResult: templateResult, 
}); 

вы можете, пожалуйста, помогите мне исправить это?

благодарит

ответ

1

Вы должны вызвать выбранное значение

var selected = [{id: "20"}]; 
var data = <?php echo $cat_json; ?>; 
function templateResult(node) { 
    var $result = $('<span style="padding-left:' + (20 * node.level) + 'px;">' + node.text + '</span>'); 
    return $result; 
} 
; 
function formatSelection(node) { 
    return node.sel_text; 
} 
; 
$("#mySelect").select2({ 
    placeholder: 'Select an option', 
    width: "600px", 
    tags: true, 
    data: data, 
    templateSelection: formatSelection, 
    templateResult: templateResult, 
}); 
$('#mySelect').val(selected).trigger('change'); 

Я надеюсь, что этот код будет работать.

+0

спасибо так много .. Теперь оборотный штраф. –

0

После многих испытаний, для версии 4.0.3 этот трюк работал

initSelection: function (element, callback) 
     { 
      var id = $(element).val(); 
      if (id !== "" && id !== 0) 
      { 
       $.ajax(url, 
         { 
          data: {q: id}, 
          dataType: "json" 
         }).done(function (data) 
       { 
        $.each(data, function (i, value) 
        {      
         input.append('<option value='+value[0].id+' selected>'+value[0].text+'</option>');      
         callback({id: value[0].id,text: value[0].text}); 
        }); 
        ; 
       }); 
      } 
     } 
Смежные вопросы