我是具有C#背景的javascript的新手,所以当我偶然发现以下情况时,我很感兴趣:
编辑:我已经包含了复制该问题的原始文本。警报文本显示为“未定义”。我正确查询收音机吗?
的index.html
<html>
<head>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
<form>
10 <input type="radio" name="group1" value="10"></br>
20 <input type="radio" name="group1" value="20"></br>
30 <input type="radio" name="group1" value="30"></br>
<input type="button" value="Submit" onclick="buttonPressed()">
</form>
</body>
</html>
scripts.js中
function buttonPressed()
{
var radios = document.getElementsByName("group1");
var checkedRadio;
for(var i in radios)
{
if(radios[i].checked)
{
checkedRadio = i;
}
}
var tipAmount;
if(checkedRadio == 0)
{
tipAmount = 10;
}
if else(checkedRadio == 1)
{
tipAmount = 20;
}
if else(checkedRadio == 2)
{
tipAmount = 30;
}
alert(tipAmount);
}
为什么alertText未定义?
由于
答案 0 :(得分:1)
JavaScript没有块范围,只有函数范围。所以你给我们的代码就可以了。
答案 1 :(得分:0)
此代码应该可以使用,我建议您下载Firebug
,这样您就可以访问脚本并在第一行放置一个断点并按F10
来调试每一行,你应该快速找到错误或告诉我们它的作用。
你可以试试像这样的循环
for( i = 0; i < radios.length; i++ )
{
if(radios[i].checked)
{
checkedRadio = i;
}
}
此外,您可以使用复选框中的值,而不是对提示进行硬编码。
你有jquery吗?
你可以像这样做一些简单的事情
$('.group1:checked').each(function() {
tip = this.val();
});