我正在尝试构建一串用户的“兴趣”,他们通过选中单选框来表明这些兴趣。当我返回结果时,兴趣字符串前面总是有一个“未定义”。我知道我可以通过将 varinterest 初始化为空字符串来解决这个问题,如下所示:
var interests ="";
但我不确定这是否是解决问题的正确方法。有没有更优化的数据结构?
var controlIndex;
var element;
var interests;
var numberOfControls = document.form1.length;
for (controlIndex = 0; controlIndex < numberOfControls; controlIndex++)
{
element = document.form1[controlIndex];
if (element.type == "radio")
{
if (element.checked == true)
{
interests += document.form1[controlIndex].value+"\n";
console.log(interests);
document.getElementById("interests").innerHTML= interests
}
}
}
}
}
<form action="" name="form1">
<h1>Personal Details</h1>
Please enter the following details:
<br>
<p>
First Name:
<br />
<input type="text" name="txtName" onchange="txtName_onchange()"/>
</p>
<p>
Age:
<br />
<input type="text" name="txtAge" size="3" maxlength="3" onchange="textAge_onblur()" />
</p>
<p>
My interest is:
<p>Sports
<input type="radio" name="sports" value="sports"/>
</p>
<p>Politics
<input type="radio" name="politics" value="politics" />
</p>
<p>Magazines
<input type="radio" name="magazines" value="magazines">
</p>
<p>
<input type="button" value="Submit Registration" name="btnCheckForm" onclick="btnCheckForm_onclick()" >
<input type = "button" value = "Clear Details" name="btnClear" onclick="btnClear_onclick()">
</p>
</form>
</div>
最佳答案
我会将您的“兴趣”变量转换为数组。
var interests = [];
然后我就会像这样推进它。当您想打印出来时,只需加入即可。
interests.push(document.form1[controlIndex].value);
console.log(interests.join(""));
关于JavaScript 变量返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117789/