2017-02-09 27 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"); 
}