javascript - 如何检查多个选择框上的更改是否发生
问题描述
我有 2 个选择下拉框。如果选择了选项,我需要进行多次迭代。
我的选择框:
<select id="time_period">
<option value="day" selected>Day</option>
option value="month">Month</option>
</select>
<select id="site">
<option value="google" selected>Google</option>
option value="bing">Bing</option>
</select>
我想检查是否#time period
选择了一个选项,#site
或者是否选择了两个选项。
有没有办法做到这一点?
解决方案
使用onchange方法
(function() {
var time_period, site;
document.getElementById("time_period").onchange = function() {
time_period = document.getElementById("time_period").value;
console.log(time_period);
checkBothSelected();
};
document.getElementById("site").onchange = function() {
site = document.getElementById("site").value;
console.log(site);
checkBothSelected();
};
function checkBothSelected() {
if (site && time_period) {
console.log('Both Selected!');
}
}
})();
<select id="time_period">
<option value="day" selected>Day</option>
<option value="month">Month</option>
</select>
<select id="site">
<option value="google" selected>Google</option>
<option value="bing">Bing</option>
</select>
使用onChange属性
var time_period, site;
function onSelection(e) {
if (e.id == 'time_period') {
time_period = e.value;
} else if (e.id == 'site') {
site = e.value;
}
console.log(e.value);
checkBothSelected();
}
function checkBothSelected() {
if (site && time_period) {
console.log('Both Selected!');
}
}
<select id="time_period" onChange="onSelection(this)">
<option value="day" selected>Day</option>
<option value="month">Month</option>
</select>
<select id="site" onChange="onSelection(this)">
<option value="google" selected>Google</option>
<option value="bing">Bing</option>
</select>
使用addEventListener
(function() {
var time_period, site;
document.getElementById('time_period').addEventListener('change', function() {
time_period = this.value;
console.log(time_period);
checkBothSelected();
});
document.getElementById('site').addEventListener('change', function() {
site = this.value;
console.log(site);
checkBothSelected();
});
function checkBothSelected() {
if (site && time_period) {
console.log('Both Selected!');
}
}
})()
<select id="time_period">
<option value="day" selected>Day</option>
<option value="month">Month</option>
</select>
<select id="site">
<option value="google" selected>Google</option>
<option value="bing">Bing</option>
</select>
推荐阅读
- swiftui - SwiftUI 列表正在使用 .navigationBarItems 进行剪辑
- python - 如何在生成条形图时更改频率
- wordpress - Avia 布局生成器无法从选项卡部分删除选项卡
- qt - 尝试在 pro 文件中运行 QMAKE_POST_LINK 或 system() 似乎没有任何作用
- sql - 如何获取 Azure SQL 事务日志
- python - 如何将变量数据从一个函数发送到Django中的另一个函数
- angular - Angular Chrome 不允许加载本地资源
- c++ - 类中的 C++ 静态函数,返回引用
- sql-server - 使用联合从 2 个表中返回单行
- mysql - 合并两个表并更新 ID 匹配的单元格