2015-09-12 57 views
0

我在我的文章追蹤應用程序中使用select2進行標記搜索,並且我注意到當你開始輸入時,說「m」,「mi」,你會認爲'遷移'會先突出顯示,有'm',就像表格一樣。正如照片所示,「形式」首先出現,這讓您搜索得越多,就會變得非常煩人。如何讓select2搜索按字母順序開始?

如果你輸入「mi」,我期望任何以'mi'開頭的東西首先出現,而不是包含m和i的'forms-middle'。你如何根據拼寫正確地選擇2個查找標籤?謝謝

的是沒有工作因爲某種原因,也不是在文檔默認提供的答案是:

<select style="width:90%;" multiple="multiple" id="selected_tags" name="selected_tags"> 
     {% for tag in tags %}   
      <option value="{{tag.slug}}">{{tag.name}}</option> 
     {% endfor %} 
    </select> 

.... 


$(document).ready(function() { 
    $("#selected_tags").select2({ 
     sortResults: function(results, container, query) { 
      if (query.term) { 
       // use the built in javascript sort function 
       return results.sort(function(a, b) { 
        if (a.text.length > b.text.length) { 
         return 1; 
        } else if (a.text.length < b.text.length) { 
         return -1; 
        } else { 
         return 0; 
        } 
       }); 
      } 
      return results; 
     } 
    }); 
}); 

enter image description here

+0

你嘗試閱讀文檔? – Nit

+0

https://select2.github.io/examples.html這就是我看到的 – codyc4321

+0

可能的重複[Select2 - 通過查詢排序結果](http://stackoverflow.com/q/31991217/359284#32106792) –

回答

1

您可以排序結果請檢查documentation here。根據查詢的字符串索引進行排序。您可以使用javascript構建sort()方法對結果數組進行排序。

$("#e1").select2({ 
 
    sortResults: function(results, container, query) { 
 
    console.log(query); 
 
    if (query.term) { 
 
     // use the built in javascript sort function 
 
     return results.sort(function(a, b) { 
 
     console.log(a.text.indexOf(query),b.text.indexOf(query)); 
 
     if (a.text.indexOf(query.term) > b.text.indexOf(query.term)) { 
 
      return 1; 
 
     } else if (a.text.indexOf(query.term) < b.text.indexOf(query.term)) { 
 
      return -1; 
 
     } else { 
 
      return 0; 
 
     } 
 
     }); 
 
    } 
 
    return results; 
 
    } 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css" rel="stylesheet" /> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2-bootstrap.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.js"></script> 
 
<select id="e1"> 
 
    <option value="AL">Alabama</option> 
 
    <option value="WY">Wyoming</option> 
 
    <option value="WY">sdsd</option> 
 
    <option value="WY">aasd</option> 
 
    <option value="WY">aaas</option> 
 
    <option value="WY">qwer</option> 
 
    <option value="WY">sqwqw</option> 
 
    <option value="WY">cxncmx</option> 
 
    <option value="WY">snamsnam</option> 
 
</select>

+0

如果您要直接從文檔中複製粘貼代碼,請至少鏈接到它。 – Nit

+0

@Nit:請稍候,我會更新,,,,, –

+0

他們很清楚地使用新版本的Select2,這隻適用於舊版本。 –