javascript - 我们有一个 2 个下拉列表,在选择第一个下拉列表的多个值时具有相同的值,第二个下拉列表值是自动选择的
问题描述
我们有一个 2 个下拉列表,在选择第一个下拉列表的多个值时具有相同的值,第二个下拉列表值是自动选择的,其值与第一个下拉列表相同
解决方案
将change
事件侦听器添加到第一个下拉列表,并使用第一个下拉列表的选定值更改第二个下拉列表的值。
// javascript
const selectEles = document.querySelectorAll('select');
selectEles[0].addEventListener('change', function() {
selectEles[1].value = this.value;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
------ jQuery --------
const selectEles = $('select');
$(selectEles[0]).on('change', function() {
selectEles[1].value = $(this).val();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
对于多个值。为了在dropdown
添加multiple
属性中选择多个值select
。当您在下拉列表中设置多个时,它将返回一组选定选项。检查第二个下拉值是否存在于选定值中,如果yes
将option
选定属性设置为true
。
const selectEle = document.querySelector('select#first');
const secondSelectOptions = document.querySelectorAll('select#second>option')
selectEle.addEventListener('change', function() {
const selectedOptionVals = [...this.selectedOptions].map(option => option.value);
secondSelectOptions.forEach(option => {
if(selectedOptionVals.includes(option.value)) {
console.log('Entering if');
option.selected = true;
} else {
option.selected = false;
}
})
});
<select id="first" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select id="second" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
推荐阅读
- java - 在“-”之后传入大写(indexOf)
- django - modelformset_factory 不将实例保存到数据库
- postgresql - 执行 Postgres 时二进制无效
- json - 从 NSMutableArray 快速创建 jsonArray
- java - 码头 9.4 不可读的会话
- python - python numpy加载火炬模型.t7文件
- javascript - Webpack 可以在客户端动态加载 UMD 模块吗?
- github - 使用 versioneer 和 GitHub 更新版本号
- json - 查询将参数传递给 JsonAssert.whenIgnoringPaths()
- css - codepen 禁用外部图像链接