2017-02-09 29 views
0

这些代码在这里为html和javascript。我试图使用JavaScript来获得这个结果。例如,Extras: Candy, Ice CreamExtras: Candy, Chocolate,并且在某处之间或某处没有获取未定义的值。我已经尝试了多个变种,但我得到了未定义的值。如果我只选择了一个,它只打印一个,而不打印其余的。如何使用复选框打印选定的值并打印它们而没有未定义的值?

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> 

回答

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(); 
 
}
<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>

+0

非常感谢!我还没有学过阵列,这将是一个很好的参考。 –

0

设置MSG 2的你的字符串值是这样的:

var msg2 = ""; 

然后在if语句使这+=代替=

+0

它只打印所选的第一个复选框,越来越打印其他两个选项。 –

+0

那是因为你正在使用if else语句。 尽量只做if语句。或者做一个循环,检查每个复选框,如果它被选中 –

+0

我已经得到它并感谢您的建议!虽然有人殴打我首先得到答案。 –

0

首先,是的,你应该设置你的msg2 var,就像rick说的那样。 然后,您使用的否则如果条件下,如果你的代码放在第一内如果,将退出循环,而不是去别的其他内如果的,这就是为什么你只能放一个变量中的值为 。 像这样sohuld工作

if (extras[0].checked) { 
    msg2 = (msg2 + "Candy"); 
} 
if (extras[1].checked) { 
    msg2 = (msg2 + "Chocolate"); 
}