Select2 là công cụ khá tốt để tùy biến select box, nó hỗ trợ việc tìm kiếm, tagging, lấy dữ liệu từ nguồn khác ... Để sử dụng Select2, bạn cần chèn file JavaScript và CSS của nó vào trang web của bạn. Bạn có thể tải chúng về từ đây , copy vào thư mục dist và include chúng vào thẻ <head> trên trang HTML của bạn.
Copy <link href="path/to/select2.min.css" rel="stylesheet" /> <br>
<script src="path/to/select2.min.js"></script>
Hoặc có thể sử dụng qua CDN
Copy <link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>
Hoặc cũng có thể sử dụng nó như 1 gem với Ruby on Rails
Để khởi tạo một select2 cho riêng bạn :
Copy <script type="text/javascript">
$('select').select2();
</script>
Một số tính năng hay dùng với Select2
Cơ bản
Copy $(document).ready(function() {
$(".js-example-basic-single").select2();
// Thêm các tùy chọn của bạn vào đây.
});
<select class="js-example-basic-single">
<option value="AL">Alabama</option>
...
<option value="WY">Wyoming</option>
</select>
Placeholders
Copy $(".js-example-placeholder-single").select2({
placeholder: "Select a state",
allowClear: true
});
Hiển thị nút xóa các giá trị đã chọn
Copy $(".js-example-clear").select2({
allowClear: true
});
Đọc dữ liệu từ một mảng
Copy var data = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];
$(".js-example-data-array").select2({
data: data
})
Đọc dữ liệu từ nguồn khác sử dụng AJAX
Copy ajax: {
url: "/contacts",
dataType: "json",
delay: 200,
data: function (params) {
return {
search: params.term
};
},
processResults: function (data) {
return {
results: data
};
},
cache: true
}
Disabled mode
Copy $(".js-example-disabled").prop("disabled", false);
Ẩn ô tìm kiếm
Copy $(".js-example-basic-hide-search").select2({
minimumResultsForSearch: Infinity
});
Bắt các sự kiện
Copy var $eventSelect = $(".js-example-events");
$eventSelect.on("select2:open", function (e) { log("select2:open", e); });
$eventSelect.on("select2:close", function (e) { log("select2:close", e); });
$eventSelect.on("select2:select", function (e) { log("select2:select", e); });
$eventSelect.on("select2:unselect", function (e) { log("select2:unselect", e); });
Chế độ thẻ Tagging
Copy $(".js-example-tags").select2({
tags: true
})
Automatic tokenization
Copy $(".js-example-tokenizer").select2({
tags: true,
tokenSeparators: [',', ' ']
})
Hỗ trợ đã ngôn ngữ
Copy $(".js-example-language").select2({
language: "es"
});
Căn lề về bên phải
Copy $(".js-example-rtl").select2({
dir: "rtl"
});
Nguồn