2013-06-27 66 views
3

我正在使用select2插件,我需要使用傳輸函數來自己執行ajax請求,因爲我需要在請求頭。但是,只要我這樣做,select2會正確響應結果,並按照我想要的格式顯示它,但顯示的結果不可選。我既不能用鼠標點擊它們,也不能用箭頭鍵導航到它們,當我用鼠標移過它們時也沒有任何鼠標懸停效果。使用select2:使用傳輸函數時,結果不可選

下面是一些代碼(我想顯示的用戶名的建議):

ajax: { 
    data: function (term, page) { 
     return { 
      Searchtext: term 
     }; 
    }, 

    transport: function(queryParams){ 
     // Api.Ajax delivers { Ajax: *the $.ajax object*, RequestId: *some requestId* } 
     var req = Api.Ajax("/api/suggestion/share/" + queryParams.data.Searchtext, "POST", { UserOnly: true }, queryParams.success); 

     return req.Ajax; 
    }, 

    // parse the results into the format expected by Select2. 
    results: function(resp, page) { 
     return { 
      results: resp.Data, 
      more:  false 
     }; 
    } 
}, 

就像我說的,只要我用我自己的Ajax功能通過實現傳輸功能,結果在下拉列表全部顯示,但不可選擇。

這是一個錯誤,還是我做錯了什麼?

+0

好吧,相關主題讓我找到解決方案。必須在ajax之上設置一個id函數。看看下面的主題,看看解決方案:http://stackoverflow.com/questions/14819865/select2-ajax-method-not-selecting – thnew

+1

這是我的問題也解決了。看到此鏈接: [計算器] [1] [1]:http://stackoverflow.com/questions/14193463/an-event-is-interfering-with-select2-plugins-ajax-檢索結果 – MHS

回答

-1

@thnew This Answer將向您展示如何設置請求標頭而不需要傳輸功能。

+0

他正在嘗試執行POST,因此需要比標題更多。 – Tim