无法使用 Javascript 禁用选择字段

Can't disable a select field using Javascript

本文关键字:选择 字段 Javascript      更新时间:2023-09-26
几个小时

以来一直在用头撞墙,但我只是在禁用选择字段时遇到问题。 我想知道 - 但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 函数被调用得很好,我按预期收到警报。 但是 - 虽然没有错误(运行火虫),但我也没有禁用/启用选择(即Op1_Enroll或Opt2_Enroll)。

相同类型的javascript和HTML适用于其他几个选择 - 但不是这个。 知道为什么吗?

你有一个错别字。

它应该是disabled的,而不是disable.

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

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