如何检查收音机或复选框是否被选中?

问题描述:

我有这样的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

好的谢谢..这只是为了检查,我得到正确的数据.. –

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标记.. :) –

您正试图检查值的检查。

相反的:

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

用途:

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

因为无论cc1cc2必须是复选框themsevles不是他们的价值观:

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

你不需要在document.getElementById中的.value只是对象,所以关闭.value,它应该工作。