我在这里有html和javascript这些代码。我试图使用javascript获得此结果。例如,Extras: Candy, Ice Cream
或Extras: Candy, Chocolate
并且在两者之间或某处未获取未定义的值。我尝试过多个var,但是我得到了未定义的值。如果我只选择了一个,它只打印一个,而不打印其余的。
getCheckboxvalue() {
var msg2 = "";
if (extras[0].checked) {
msg2 = (msg2 + "Candy");
} else if (extras[1].checked) {
msg2 = (msg2 + "Chocolate");
} else if (extras[2].checked) {
msg2 = (msg2 + "Ice Cream");
}
var message = "Extras: " + msg2;
document.getElementsByClassName("gettext")[0].innerHTML = message;
}
<form name="elem" autocomplete="on">
<input type="checkbox" name="extras">Candy
<br>
<input type="checkbox" name="extras">Chocolate
<br>
<input type="checkbox" name="extras">Ice Cream
<input type="button" onClick="getCheckboxvalue()" value="Get Order!">
<br>
<br><span class="gettext"></span>
</form>
答案 0 :(得分:1)
function getCheckboxvalue() {
var msg2=[];
for (var i=0;i< document.getElementsByName("extras").length;i++){
if ( document.getElementsByName("extras")[i].checked) {
msg2.push(document.getElementsByName("extras")[i].value);
}
}
document.getElementsByClassName("gettext")[0].innerHTML ="Extras :"+ msg2.toString();
}
&#13;
<form name="elem" autocomplete="on">
<input type="checkbox" name="extras" value="Candy">Candy
<br>
<input type="checkbox" name="extras" value="Chocolate">Chocolate
<br>
<input type="checkbox" name="extras" value="Ice Cream">Ice Cream
<input type="button" onClick="getCheckboxvalue();" value="Get Order!">
<br>
<br><span class="gettext"></span>
</form>
&#13;
答案 1 :(得分:0)
将字符串值设置为msg2,如下所示:
var msg2 = "";
然后在你的if语句中将其设为+=
而不是=
。
答案 2 :(得分:0)
首先,是的,你应该设置你的msg2 var,就像里克说的那样。 然后,你正在使用 else if 条件,如果你的代码进入第一个 if ,它将退出循环而不进入另一个 else if else ,这就是为什么你只能在变量中放入一个值 。 像这样的东西这样的工作
if (extras[0].checked) {
msg2 = (msg2 + "Candy");
}
if (extras[1].checked) {
msg2 = (msg2 + "Chocolate");
}
等