无法使用Javascript禁用选择字段

时间:2015-03-10 16:52:22

标签: javascript html

我的头靠在墙上几个小时,但我只是在禁用选择字段时出现问题。我想知道 - 但只有Javascript答案。对不起,这个项目不使用jquery。

代码已经缩短,有点缩写......

总的来说,这是HTML:

<form>
.
.  Code below triggers the enable/disable
<td>
    <fieldset name="GM" id="GM" onchange="grpChg();">
        <legend>Select One:</legend>
        <input name="GM" id="GM1" type="radio" value="1"/>Opt1<br />
        <input name="GM" id="GM2" type="radio" value="2"/>Opt2<br />
        <input name="GM" id="GM3" type="radio" value="3"/>Opt3<br />
        <input name="GM" id="GM4" type="radio" value="4"/>Opt4<br />                
    </fieldset> 
</td>
.
.
.  This is the section that should be enabled/disabled:
<table>
    <tr>
        <td>
            <strong>Section 1<br /></strong>
            Option 1<br />
        </td>
        <td>
            <select name="Opt1_Enroll" id="Opt1_Enroll">
                <option value=""></option>
                <option value="1">Yes</option>          
                <option value="2">No</option></select>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <strong>Section 2<br /></strong>
            Option 2
        </td>
        <td>
            <select name="Opt2_Enroll" id="Opt2_Enroll">
                <option value=""></option>
                <option value="1">Yes</option>          
                <option value="2">No</option></select>
            </select>           
        </td>
    </tr>
</table>
.
.
.
</form>

现在javascript函数:

function grpChg() {
    var tt = document.getElementsByName('GM');

    var enrollValue = 0;
    for (var i = 0; i < tt.length; i++) {           ;
        if (tt[i].type === "radio" && tt[i].checked) {          
            enrollValue = tt[i].value;
        }
    }   

    if (enrollValue == "2") {   
alert("Opt2");
        document.getElementById("Opt1_Enroll").disable = true;
        document.getElementById("Opt2_Enroll").disable = false;     
    } else {
alert("NOT Opt2");              
        document.getElementById("Opt1_Enroll").disable = false;
        document.getElementById("Opt2_Enroll").disable = true;      
    }

}

javascript函数调用得很好,我按预期收到警报。但是 - 虽然没有出现错误(运行firebug),但我也没有禁用/启用选择(即Op1_Enroll或Opt2_Enroll)。

相同类型的javascript和HTML适用于其他几个选项 - 但不适用于此。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你有一个错字。

应该是disabled而不是disable

document.getElementById("Opt2_Enroll").disabled = true;

您可以查看here以查看JS中不同HTML输入的所有可用属性。