2017-06-29 190 views
0

我有這樣的HTML代碼:如何檢查收音機或複選框是否被選中?

<div id="f4" class="none"> 

    <h4>Jaký tarif chcete zvolit?</h4> 
    <input type="radio" name="tarif" value="tarif1" id="t1"><label for="t1">Tarif 1</label> <br> 
    <input type="radio" name="tarif" value="tarif2" id="t2"><label for="t2">Tarif 2</label> <br> 
    <input type="radio" name="tarif" value="tarif3" id="t3"><label for="t3">Tarif 3</label> <br> 
    <h4>Co chcete aktivovat?</h4> 
    <input type="checkbox" name="akt" value="roaming" id="cc1"><label for="cc1">Roaming</label> <br> 
    <input type="checkbox" name="akt" value="platby" id="cc2"><label for="cc2">Platby</label> <p></p> 

    <input type="button" name="send" value="ODESLAT" onclick="vypisForm();"> 





    </div> 

,這是vypisForm功能的一部分:

var t1 = document.getElementById("t1").value; 
var t2 = document.getElementById("t2").value; 
var t3 = document.getElementById("t3").value; 
var cc1 = document.getElementById("cc1").value; 
var cc2 = document.getElementById("cc2").value; 

if(t1.checked) { 
    document.write("Zvolený tarif je: "+ t1 + "<br>"); 
    } else if(t2.checked) { 
    document.write("Zvolený tarif je: "+ t2 + "<br>"); 
    } else { 
    document.write("Zvolený tarif je: "+ t3 + "<p></p>"); 
    } 

    document.write("Zvolili jste tyto služby:" + "<br>"); 
    if (cc1.checked) { 
    document.write(cc1 + "<br>"); 
    } else if (cc2.checked) { 
    document.write(cc2 + "<br>"); 
    } else if(cc1.checked && cc2.checked) { 
    document.write(cc1 + "<br>"); 
    document.write(cc2 + "<br>"); 
    } else if(!cc1.checked && !cc2.checked) { 
    document.write("Žádné"); 
    } 

但它不工作..想法是,如果單選按鈕被選中,寫和如果單選按鈕被選中寫另一回事..

與相同的複選框,有兩個那些..

有誰看到I D o不?謝謝

+1

那麼你引用的值,你正在查看該字符串的選中值.....而你不應該使用document.write。 – epascarello

+0

好的謝謝..這只是爲了檢查,我得到正確的數據.. –

回答

0

document.getElementById(「t1」)。value獲取輸入的值,但不保持其檢查狀態。這是你想要做的。

var t1 = document.getElementById("t1"); 
var t2 = document.getElementById("t2"); 
var t3 = document.getElementById("t3"); 
var cc1 = document.getElementById("cc1"); 
var cc2 = document.getElementById("cc2"); 
if(t1.checked) { 
    document.write("Zvolený tarif je: "+ t1.value + "<br>"); 
} else if(t2.checked) { 
    document.write("Zvolený tarif je: "+ t2.value + "<br>"); 
} else { 
    document.write("Zvolený tarif je: "+ t3.value + "<p></p>"); 
} 

document.write("Zvolili jste tyto služby:" + "<br>"); 
if (cc1.checked) { 
    document.write(cc1.value + "<br>"); 
} else if (cc2.checked) { 
    document.write(cc2.value + "<br>"); 
} else if(cc1.checked && cc2.checked) { 
    document.write(cc1.value + "<br>"); 
    document.write(cc2.value + "<br>"); 
} else if(!cc1.checked && !cc2.checked) { 
    document.write("Žádné"); 
} 
+0

謝謝它的作品..但是如果我想顯示不是價值屬性,但該單選按鈕的標籤? –

+0

如果您爲輸入使用'for'和'id'字段,您可以這樣做: 'if(t1.checked){var_type = ''''; document.write(「Zvolenýtarif je:」+ label.innerHtml +「
」); }' – Viandoks

+0

當我使用您的代碼它說undefined ..我不得不刪除一個quation標記.. :) –

0

您正試圖檢查值的檢查。

相反的:

var cc1 = document.getElementById("cc1").value; 

用途:

var cc1 = document.getElementById("cc1").checked; 
if (cc1) { 
    document.write(cc1 + "<br>"); 
} 
0

因爲無論cc1cc2必須是複選框themsevles不是他們的價值觀:

var cc1 = document.getElementById("cc1"); 
//          ^^^ remove .value 
0

你不需要在document.getElementById中的.value只是對象,所以關閉.value,它應該工作。

相關問題