html级联选择器,基于selectize.js实现的自定义级联选择器
时间: 2023-06-29 12:06:41 浏览: 123
级联选择器.js
HTML级联选择器是一种常见的表单控件,用于让用户在多个选项中进行选择。使用selectize.js可以方便地实现自定义的级联选择器,使得用户可以根据前一个选项的选择动态地加载后续选项。
以下是一个基于selectize.js实现的简单级联选择器:
```html
<!DOCTYPE html>
<html>
<head>
<title>级联选择器</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.css" integrity="sha256-Z6TzH4WbQYZSj8VvD6g5cFw7fRf/3jz6OwvYbK2e5pw=" crossorigin="anonymous" />
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha384-ZvpUoO/+PpLXR1lu4jmpXWu80pZlYUAfxl5NsBMWOEPSjUn/6Z/hRTt8+pR6L4N2" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js" integrity="sha256-8iKwBtOJU/8FJjN9ryftmrgyG3zIiVp8c7K4Zn0QGB0=" crossorigin="anonymous"></script>
</head>
<body>
<label for="country">国家:</label>
<select id="country" name="country" class="selectized">
<option value="">请选择国家</option>
<option value="china">中国</option>
<option value="usa">美国</option>
</select>
<label for="city">城市:</label>
<select id="city" name="city" class="selectized">
<option value="">请选择城市</option>
</select>
<script>
$(document).ready(function() {
var cities = {
china: ['北京', '上海', '广州', '深圳'],
usa: ['纽约', '洛杉矶', '芝加哥', '旧金山']
};
$('#country').selectize({
onChange: function(value) {
if (!value.length) return;
var citySelect = $('#city').selectize()[0].selectize;
citySelect.clearOptions();
citySelect.load(function(callback) {
callback(cities[value]);
});
}
});
$('#city').selectize();
});
</script>
</body>
</html>
```
在上面的代码中,我们定义了两个select元素,一个是国家选项,一个是城市选项。在国家选项中选择一个选项后,城市选项会根据所选国家动态加载对应的城市选项。
实现的关键在于通过selectize.js的API来实现级联选择器的动态加载。在国家选项的onChange事件中,我们通过load方法来动态加载城市选项。这个方法会接受一个回调函数作为参数,这个回调函数用于返回后续选项的选项值数组。在这个例子中,我们根据所选国家返回相应的城市数组。
阅读全文