2016-10-05 47 views
1

我正在使用Select2(https://select2.github.io)。重定向到來自select2的URL下拉菜單

我想要使用select2作爲現場ajax搜索輸入。

所以我儘量讓它:

var $similar = $(".datajax-items"); 

$similar.select2({ 

    placeholder: "search...", 
    maximumSelectionSize: 1, 
    ajax: { 
      ... 
     }, 
     processResults: function(data, params) { 
      params.page = params.page || 1; 

      return { 
       results: data.items, 
       pagination: { 
        more: (params.page * 20) < data.total_count 
       } 
      }; 
     }, 
     cache: true 
    }, 
    escapeMarkup: function(markup) { return markup; }, 
    templateResult: formatRepo, 
    templateSelection: formatRepoSelection 
}); 

和功能:

function formatRepo(repo) { 
if (repo.loading) return repo.text; 

var markup = "<a href=\"google.com\" class='select2-result-repository clearfix'></a>"; 

return markup; 
} 

function formatRepoSelection(repo) { 
    return repo.id || repo.text; 
} 

代碼工作。但是當我點擊一個選項時(在選擇框中),它(通常)選擇它。我不想選擇它。我想禁用選擇,然後將頁面重定向到自定義URL。

回答

0

Ifound一個簡單的解決方案:

聲明一個變量(例如 'URL' 在服務器側(JSON)),並更改碼本:

function formatRepoSelection(repo) { 
    if(repo.url) 
    { 
     window.location.replace(repo.url); 
     return 'please wait...'; 
    } 
    return repo.title || repo.text; 
}