# select2下拉选择组件
# 官网
https://select2.org/ (opens new window)
# 基础用法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
</head>
<body>
<div>
<!-- 单选 -->
<select class="js-example-basic-single" name="state">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>
</div>
<div>
<!-- 多选 -->
<select class="js-example-basic-multiple" name="states[]" multiple="multiple">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>
</div>
</body>
<script>
$(document).ready(function () {
$('.js-example-basic-single').select2();
$('.js-example-basic-multiple').select2();
});
</script>
</html>
# 调用远程数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Select2 远程数据源示例</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
</head>
<body>
<select id="remoteSelect" style="width: 300px;">
<option value="">Select a country</option>
</select>
<script>
$(document).ready(function() {
$('#remoteSelect').select2({
ajax: {
url: 'https://api.example.com/countries', // 远程数据源的 URL
dataType: 'json',
delay: 250,
processResults: function(data) {
return {
results: $.map(data, function(obj) {
return { id: obj.value, text: obj.name }; // 使用 value 作为选项的值,name 作为显示的文本
})
};
},
cache: true
},
minimumInputLength: 1 // 最小输入字符数触发 AJAX 请求
});
});
</script>
</body>
</html>
# js渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Select2 一次性加载远程数据源示例</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
</head>
<body>
<select id="remoteSelect" style="width: 300px;">
<option value="">Select a country</option>
</select>
<script>
$(document).ready(function() {
// 假设你的数据源已经加载到一个名为 countries 的数组中
var countries = [
{ id: 1, text: 'Country 1' },
{ id: 2, text: 'Country 2' },
{ id: 3, text: 'Country 3' },
// 其他国家数据...
];
// 使用 data 属性将数据加载到 Select2 中
$('#remoteSelect').select2({
data: countries
});
});
</script>
</body>
</html>