无线电重置不起作用

时间:2015-01-09 09:33:50

标签: javascript radio-button

我试图取消选中我必须给出不同名称的一组单选按钮的先前选择的单选按钮。我试图避免jquery,这是迄今为止最接近的尝试。

function radioUncheck(){
    if (document.forms.form.radioa[1].checked= true){
        document.forms.form.radiob[1].checked= false;
        document.forms.form.radioc[1].checked= false;
        document.forms.form.radiod[1].checked= false;
        document.forms.form.radioe[1].checked= false;
        document.forms.form.radiof[1].checked= false;
    }
    else if(document.forms.form.radiob[1].checked= true){
        document.forms.form.radioa[1].checked= false;
        document.forms.form.radioc[1].checked= false;
        document.forms.form.radiod[1].checked= false;
        document.forms.form.radioe[1].checked= false;
        document.forms.form.radiof[1].checked= false;
    }
    else if(document.forms.form.radioc[1].checked= true){
        document.forms.form.radioa[1].checked= false;
        document.forms.form.radiob[1].checked= false;
        document.forms.form.radiod[1].checked= false;
        document.forms.form.radioe[1].checked= false;
        document.forms.form.radiof[1].checked= false;
    }
    else if(document.forms.form.radiod[1].checked= true){
        document.forms.form.radioa[1].checked= false;
        document.forms.form.radiob[1].checked= false;
        document.forms.form.radioc[1].checked= false;
        document.forms.form.radioe[1].checked= false;
        document.forms.form.radiof[1].checked= false;
    }
    else if(document.forms.form.radioe[1].checked= true){
        document.forms.form.radioa[1].checked= false;
        document.forms.form.radiob[1].checked= false;
        document.forms.form.radioc[1].checked= false;
        document.forms.form.radiod[1].checked= false;
        document.forms.form.radiof[1].checked= false;
    }
    else if(document.forms.form.radiof[1].checked= true){
        document.forms.form.radioa[1].checked= false;
        document.forms.form.radiob[1].checked= false;
        document.forms.form.radioc[1].checked= false;
        document.forms.form.radiod[1].checked= false;
        document.forms.form.radioe[1].checked= false;
    }
    else{
    }
}

我也尝试用=替换==,并试图为每个替换.reset而不是等于假...请帮忙!!谢谢你的时间

HTML示例如下:

<form name="form">
    <input type="radio" name="radioa" onclick="radioUncheck()">
    <input type="radio" name="radiob" onclick="radioUncheck()">
    <input type="radio" name="radioc" onclick="radioUncheck()">
    <input type="radio" name="radiod" onclick="radioUncheck()">
    <input type="radio" name="radioe" onclick="radioUncheck()">
    <input type="radio" name="radiof" onclick="radioUncheck()">
</form>

2 个答案:

答案 0 :(得分:0)

您需要使用==来检查是否相等,而不是=(这是分配)。

此外,您没有正确选择单选按钮元素。不需要数组索引[1]

最后,使用if-else这样意味着它会在尝试休息的时候卡在第一个选中的收音机盒中。而是尝试重置然后检查所点击的那个。

例如:

function radioUncheck(){
    document.forms.form.radioa.checked = false;
    document.forms.form.radiob.checked = false;
    document.forms.form.radioc.checked = false;
    document.forms.form.radiod.checked = false;
    document.forms.form.radioe.checked = false;
    document.forms.form.radiof.checked = false;

    this.checked = true;
}

Here is a working example

答案 1 :(得分:0)

使用checked =''删除收音机的已检查状态。

像这样:

document.forms.form.radioa[1].checked = '';