无法使用JS循环获取选择的选项

我正在使用JS for循环获取选定的单选按钮,并且需要使用select&options下拉列表进行相同的操作。我似乎无法弄清楚到底需要什么语法。

请参见下面的代码

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()
    }
}

请有人帮忙。

cai0157 回答:无法使用JS循环获取选择的选项

否,您无需为此使用循环,只需onchange()函数(javascript)即可在更改时调用该函数并获取选定的值。

function checkValue() {
  var select_ = document.getElementById("Select").value;
  console.log("You selected: " + select_);
}
<select id="Select" onchange="checkValue()">
  <option value="Hello">Hello
  <option value="world">World
</select>

,

需要考虑的几件事:

A)您不是将事件附加到选项,而是附加到选择本身。

B)您可以使用事件变量。

例如:

var optionEye = ""

var radios = document.getElementById("formeyes");

radios.addEventListener("change",function(event) {
    optionEye = event.target.value;
    console.log(optionEye);
    drawAvatar();
});

事件选项包含一个target属性,该属性指向HTML元素,从中可以获取当前值。

本文链接:https://www.f2er.com/3152605.html

大家都在问