我试图从 HTML 中的单选按钮标记获取值到 javascript,每次我尝试这样做时,我都会得到单选按钮的长度为 0 并且返回值未定义。这是我的代码片段(值是动态的
<html>
<body>
<form>
What color do you prefer?<br>
<input type="radio" name="colors" id="red" onclick="check();">Red<br>
<input type="radio" name="colors" id="green" onclick="check();">Green<br>
<input type="radio" name="colors" id="yellow" onclick="check();">Yellow<br>
<input type="radio" name="colors" id="blue" onclick="check();">Blue<br>
</form>
<script>
function check()
{
var isChangeReqd=getRadioButtonValue(document.getElementsByName("colors"));
}
function getRadioButtonValue(radioObj)
{
var value;
var radioLength=radioObj.length;
alert(radioLength); //is 0 //for value
for(var i=0;i<radioLength;i++)
{
if(radioObj[i].checked) return radioObj[i];
}
}
</script>
</body>
</html>
最佳答案
您正在指定单选按钮的 ID,而不是单选按钮的名称。
使用 document.getElementsByName("colors")
代替 document.getElementsByName("red")
<html>
<body>
<form>What color do you prefer?<br>
<input type="radio" name="colors" id="red" onclick="check();">Red<br>
<input type="radio" name="colors" id="green" onclick="check();">Green<br>
<input type="radio" name="colors" id="yellow" onclick="check();">Yellow<br>
<input type="radio" name="colors"id="blue" onclick="check();">Blue
</form>
<script>
function check()
{
var isChangeReqd=getRadioButtonValue(document.getElementsByName("colors"));
}
function getRadioButtonValue(radioObj)
{
var value;
var radioLength=radioObj.length;
alert(radioLength); //is 0 //for value
for(var i=0;i<radioLength;i++)
{
if(radioObj[i].checked) return radioObj[i];
}
}
</script>
</body>
</html>
关于javascript - document.getElementsByName 不适用于单选按钮中的动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691734/