前言
一般的表单控件有一个placeholder的属性,但是select却没有该属性。下面给大家带来一个实现select的placeholder的方法。
代码
html
<select class="city" onchange="select()">
<option disabled selected value>- 请选择城市</option>
<option value hidden>重置</option>
<option value="北京">北京</option>
<option value="广州">广州</option>
<option value="广州">深圳</option>
<option value="湛江">湛江</option>
</select>
JavaScript
function select(){
const select = document.querySelector('.city');
const reset = document.querySelector('.city option:nth-child(2)');
const select_index = select.selectedIndex;
if(select_index === 1){
reset.style.display = 'none';
select.options[0].selected = true;
}else{
reset.style.display = 'block';
}
}
效果
- 初始状态
- 初始状态展开
- 选择
- 选择后再次展开
- 点击“重置”
全部代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.city{
width: 200px;
height: 32px;
}
</style>
</head>
<body>
<select class="city" onchange="select()">
<option disabled selected value>- 请选择城市</option>
<option value hidden>重置</option>
<option value="北京">北京</option>
<option value="广州">广州</option>
<option value="广州">深圳</option>
<option value="湛江">湛江</option>
</select>
<script>
function select(){
const select = document.querySelector('.city');
const reset = document.querySelector('.city option:nth-child(2)');
const select_index = select.selectedIndex;
if(select_index === 1){
reset.style.display = 'none';
select.options[0].selected = true;
}else{
reset.style.display = 'block';
}
}
</script>
</body>
</html>