2016-11-25 70 views
0

我使用選擇二如下插件:選擇二阿賈克斯 - 有選擇價值觀的問題

JS

function initAssignmentsAjax() { 

     $("#assignments").empty(); 

     $("#assignments").select2({ 
      placeholder: "Select an assignment", 
      allowClear: true, 

      ajax: { 
       url: "/Home/GetAssignments", 
       dataType: 'json', 
       delay: 250, 
       data: function (params) { 
        return { 
         q: params.term, // search term 
         page: params.page 
        }; 
       }, 

       processResults: processAssignmentsResult, 

       cache: true 
      }, 
      escapeMarkup: function (markup) { return markup; }, // let our custom formatter work TUTAJ WCHODZI PO assignmentsTemplateSelectionHandler 
      minimumInputLength: 3, //1 
      templateSelection: assignmentsTemplateSelectionHandler, 
      templateResult: assignmentsTemplateResultHandler 
     }) 
    } 

    function processAssignmentsResult(data, params) { 

     var json = JSON.parse(data.Data); 
     var x = $.map(json, function (item) { 
      return { 
       text: item.ProjectNumber + ' : ' + item.BatchName, 
       children: item.ChildItems, 
      }; 
     }) 

     return { results: x }; 
    } 

HTML

<select id="assignments" style="width: 500px;" ></select> 

當我鍵入它工作正常UI中的值 - 它將Ajax查詢發送給控制器,最後呈現控件中的值。

我還增加了以下功能(基於How to programmatically inject search queries into Select2 v4?)到programaticly輸入值到搜索

function selectAssignments(term) { 

    $("#assignments").empty(); 

    var assignmentElementControl = $("#assignments"); 

    assignmentElementControl.select2('open'); 

    // Get the search box within the dropdown or the selection 
    // Dropdown = single, Selection = multiple 
    var $search = assignmentElementControl.data('select2').dropdown.$search || assignmentElementControl.data('select2').selection.$search; 
    // This is undocumented and may change in the future 

    $search.val(term); 
    $search.trigger('keyup'); 
} 

當我重新加載頁面,並利用瀏覽器控制檯這個函數(或者其綁定到UI的一些按鈕),它也很好。 但是,當我第一次嘗試通過在Select2控件(此傳遞)中輸入進行搜索時停止工作,但是當我嘗試使用此函數時,它不會從Select2控件運行ajax搜索查詢(它打開搜索列表,顯示輸入的查詢,但不火ajax)。那麼,使用Select2用戶界面搜索的功能是否會破壞此功能?

回答

0

在你的函數selectAssignments()嘗試觸發select2change

$search.val(term); 
$search.trigger('keyup'); 
$search.trigger('change'); //Here 
+0

我嘗試之前 - 無濟於事。但謝謝你的回覆 – user3057544