我试图通过for循环获取所选单选按钮的值。是的有效。
但如果没有选择单选按钮,我需要显示一条消息。因为我使用了一个名为flag的变量。但那部分不起作用。
function selRadio()
{
var i;
var flag="no";
for (i=0;i<=(document.form.ra.length);i++)
{
if (document.form.ra[i].checked)
{
alert(Number(i+1));
flag="yes";
}
}
if (flag=="no")
{
alert("click on some Radio Button");
}
}
<form name="form">
<p>1 <input type="radio" name="ra" id="1"></p>
<p>2 <input type="radio" name="ra" id="2"></p>
<p>3 <input type="radio" name="ra" id="3"></p>
<p>4 <input type="radio" name="ra" id="4"></p>
<p>5 <input type="radio" name="ra" id="5"></p>
<input type="button" value="Click" onClick='seRadio();'>
</form>
答案 0 :(得分:0)
试试这个,
<script type="text/javascript">
function selRadio()
{
var i;
var flag="no";
for (i=0;i<=(document.form.ra.length);i++)
{
if (typeof document.form.ra[i] != 'undefined' && document.form.ra[i].checked)
{
alert(Number(i+1));
flag="yes";
}
}
if (flag=="no")
{
alert("click on some Radio Button");
}
}
</script>
<form name="form">
<p>1 <input type="radio" name="ra" id="1"></p>
<p>2 <input type="radio" name="ra" id="2"></p>
<p>3 <input type="radio" name="ra" id="3"></p>
<p>4 <input type="radio" name="ra" id="4"></p>
<p>5 <input type="radio" name="ra" id="5"></p>
<input type="button" value="Click" onClick="selRadio();">
</form>
在控制台中,我得到了未定义的元素索引,因此检查了未定义的条件。 我希望这能解决你的问题。
答案 1 :(得分:0)
你需要将数组元素从0迭代到length-1,否则你会遇到异常并且在检查selRadio()
之前函数flag
被终止:
for (i=0;i<(document.form.ra.length);i++)
{
if (document.form.ra[i].checked)
{
alert(Number(i+1));
flag="yes";
}
}
(在循环条件中将<=
替换为<
)