检查单选按钮是否已选中,无法正常工作

时间:2013-02-25 18:04:51

标签: javascript html forms

当我选中一个单选按钮时,它返回false选项,它应该返回值

<form name="formulario" action="accion.php" method="post">
    <input type="radio" name="opcion" value="1">Opcion 1
    <input type="radio" name="opcion" value="2">Opcion 2
    <input type="button" name="Enviar" value='eviar' onclick="enviar();">
</form>
<script>
function enviar(){
    var di = document.getElementsByName('opcion');
    for(i=0; i <di.length; i++){
        if(di[i].checked==true){
            valorSeleccionado = di[i].value;
            alert(valorSeleccionado);
        }
        if(di[i].checked==false){
            alert('you didn´t choose a option');
        }
    }
}
</script>

3 个答案:

答案 0 :(得分:7)

请改为尝试:

function enviar() {
    var di = document.getElementsByName('opcion');
    var valid = false;
    for (i = 0; i < di.length; i++) {
        if (di[i].checked == true && !valid) {
            valorSeleccionado = di[i].value;
            valid = true;
            alert(valorSeleccionado);
        }
    }
    if (!valid) {
        alert('you didn´t choose a option');
    }
}

<强> jsFiddle example

它只是通过单选按钮运行并检查是否已选中。如果是这样,它会设置一个标志并提醒该值,如果没有,则会提醒错误。

答案 1 :(得分:0)

为了知道选择了无线电,你应该检查“opcion”元素的值。我认为已检查的属性不适用于无线电,仅适用于复选框。

答案 2 :(得分:0)

你应该把你的JS函数放在html之前。 另外,您的验证不是很精确..

以下是您更正后的代码:

<script type="text>
function enviar(){
    var valorSeleccionado = '';
    var di = document.getElementsByName('opcion');
    for(i=0; i <di.length; i++){
        if(di[i].checked==true) {
            valorSeleccionado = di[i].value;
        }
        if(valorSeleccionado) {
            alert(valorSeleccionado);
        } else {
            alert("you didn't choose an option");
        }
        }
}
</script>

<form>
    <input type="radio" name="opcion" value="1" />Opcion 1
    <input type="radio" name="opcion" value="2" />Opcion 2

    <input type="button" value="eviar" onclick="enviar();" />
</form>