我在使用Javascript中的单选按钮组获取值时遇到了很多困难。我搜索了几个小时,但没有找到解决方案。当我尝试执行document.write命令来显示单选按钮选择的值时,它们都会返回“未定义”。但有趣的是,如果我选择第一个单选按钮,它会返回显示的正确值。这是我沮丧的一部分,我没有找到解决方案,找出如何获得单选按钮组中的其他值,这应该是简单的!非常感谢您的帮助。
请仔细查看我的Javascript代码以尝试获取值(请忽略return false;命令,因为我使用它来停止我页面上的其余代码):
for( i = 0; i < document.forms.incident.elements.model.length; i++ )
{
if(document.forms.incident.elements.model[i].checked)
var omodcheck = document.forms.incident.elements.model.value;
document.write(omodcheck);
return false;
}
我的HTML表单名称是偶然的。单选按钮组的表单代码如下:
Laptop Model:
<input type="radio" name="model" value="Lenovo X200" />Lenovo X200<br />
<input type="radio" name="model" value="Lenovo X201" />Lenovo X201<br />
<input type="radio" name="model" value="Lenovo X200T" />Lenovo X200T<br />
<input type="radio" name="model" value="Lenovo X201T" />Lenovo X201T<br />
<input type="radio" name="model" value="Lenovo T400" />Lenovo T400<br />
<input type="radio" name="model" value="Lenovo R400" />Lenovo R400<br />
在这种情况下,document.write(omodcheck)的代码返回值“Lenovo X200”,但是,如果我选择任何其他单选按钮,则值将返回“undefined”!
请帮忙!
答案 0 :(得分:1)
如果我理解正确,你需要这样的东西:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript">
function checkChecked(){
for (var i = 0; i< document.getElementsByName('model').length; i++) {
if(document.testform["model"][i].checked){
var omodcheck = document.testform["model"][i].value
alert(omodcheck);
}
}
}
</script>
</head>
<body onload="checkChecked()">
Laptop Model:
<form name="testform">
<input type="radio" name="model" value="Lenovo X200" onchange="checkChecked()" />Lenovo X200<br />
<input type="radio" name="model" value="Lenovo X201" onchange="checkChecked()" />Lenovo X201<br />
<input type="radio" name="model" value="Lenovo X200T" onchange="checkChecked()" />Lenovo X200T<br />
<input type="radio" name="model" value="Lenovo X201T" onchange="checkChecked()" />Lenovo X201T<br />
<input type="radio" name="model" value="Lenovo T400" onchange="checkChecked()" />Lenovo T400<br />
<input type="radio" name="model" value="Lenovo R400" onchange="checkChecked()" checked />Lenovo R400<br />
</form>
</body>
</html>
或
在if条件中使用括号:
for( i = 0; i < document.forms.incident.elements.model.length; i++ )
{
if(document.forms.incident.elements.model[i].checked){
var omodcheck = document.forms.incident.elements.model[i].value;
document.write(omodcheck);
}
}
答案 1 :(得分:0)
据我所知,这是一个非常小的错误,因为for循环以你的返回虚假陈述结束。返回false必须在for循环之外。
看看这个jsfiddle(略微修改为使用alert()而不是document.write();
btnSubmit.onclick = function(){
for( i = 0; i < document.forms.incident.elements.model.length; i++ )
{
if(document.forms.incident.elements.model[i].checked)
var omodcheck = document.forms.incident.elements.model.value;
}
alert(omodcheck);
return false;
}