我正在尝试从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>
答案 0 :(得分:1)
您正在指定收音机的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>
&#13;
答案 1 :(得分:0)
阅读Document.getElementsByName()功能会很有帮助。与其他答案一起,看起来您可能想要通过调用元素&#34; id&#34;来返回收音机的值。属性,如:if(radioObj[i].checked) value=radioObj[i].id ;
以下是我认为您希望做的一个工作示例。
function check()
{
var isChangeReqd=getRadioButtonValue(document.getElementsByName("colors"));
alert(isChangeReqd);
}
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) value=radioObj[i].id ;
}
return value;
}
&#13;
<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>
</body>
</html>
&#13;