0

当我选中一个单选按钮时,它返回 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>
4

3 回答 3

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 示例

它只是通过单选按钮运行并检查是否选中了一个。如果是这样,它会设置一个标志并警告该值,如果不是,则警告该错误。

于 2013-02-25T18:17:05.140 回答
0

为了知道选择了哪个收音机,您应该检查“opcion”元素的值。我认为选中的属性不适用于收音机,仅适用于复选框。

于 2013-02-25T18:10:19.033 回答
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>
于 2013-02-25T18:17:54.710 回答