javascript - 无法使用 JS 循环获取选定的选项
问题描述
我正在使用 JS for 循环获得选定的单选按钮,并且需要对选择和选项下拉列表执行相同的操作。我似乎无法确切地弄清楚需要什么语法。
请参阅下面的代码
HTML
<form name="formeyes">
<h3>Choose an eye colour</h3>
Blue <input type="radio" name="myradio" value="Blue" />
Black <input type="radio" name="myradio" value="Black" />
Green <input type="radio" name="myradio" value="Green" />
Grey <input type="radio" name="myradio" value="Grey" />
Light Brown <input type="radio" name="myradio" value="LightBrown" />
Dark Brown <input type="radio" name="myradio" value="DarkBrown" />
</form>
<div class="select-eyes">
<h3>Choose an eye colour</h3>
<select id="formeyes">
<option type="text" name="myoption" value="eyes">choose eyes</option>
<option type="text" name="myoption" value="Blue">Blue</option>
<option type="text" name="myoption" value="Black">Black</option>
<option type="text" name="myoption" value="Green">Green</option>
<option type="text" name="myoption" value="Grey">Grey</option>
<option type="text" name="myoption" value="LightBrown">Light Brown</option>
<option type="text" name="myoption" value="DarkBrown">Dark Brown</option>
</select>
</div>
单选按钮的 JS(正确控制台记录所选值)
<script>
var radioEye = ""
var radios = document.forms["formeyes"].elements["myradio"];
for (var i = 0; i < radios.length; i++) {
radios[i].onclick = function() {
radioEye = this.value;
console.log(radioEye);
drawAvatar()
}
}
</script>
用于选择下拉列表的 JS(我想在其中控制台记录所选选项)
var optionEye = ""
var radios = document.getElementById("formeyes").options;
for (var i = 0; i < radios.length; i++) {
radios[i].onchange = function() {
optionEye = this.value
console.log(optionEye);
drawAvatar()
}
}
有人请帮忙。
解决方案
有几点需要考虑:
A)您不会将事件附加到选项,而是附加到选择本身。
B)您可以使用事件变量。
例如:
var optionEye = ""
var radios = document.getElementById("formeyes");
radios.addEventListener("change", function(event) {
optionEye = event.target.value;
console.log(optionEye);
drawAvatar();
});
事件选项包含一个target
属性,该属性指向 HTML 元素,您可以从中获取当前值。
推荐阅读
- c# - C# 我的第一次单例尝试显然不太正确
- python - 如何根据字符串中单词的存在对数据框进行子集化?
- java - 使用 RestTemplate API 响应
- react-native - 如何在 react-native-navigation v2 中为所有屏幕添加固定标题?
- vhdl - 用于控制占空比和相位的 VHDL 时钟分频器
- php - 如何在 magento 2 中使用 require_once
- python - 如何在 O(1) 中的 numpy 中获得反向映射?
- json - SQL Server 2017 的 Json 输出格式
- function - SSRS 函数需要从附加数据集中读取字段
- java - else 有问题(如果没有理由,程序跳转到 else)