我的头靠在墙上几个小时,但我只是在禁用选择字段时出现问题。我想知道 - 但只有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适用于其他几个选项 - 但不适用于此。有什么想法吗?
答案 0 :(得分:3)
你有一个错字。
应该是disabled
而不是disable
。
document.getElementById("Opt2_Enroll").disabled = true;
您可以查看here以查看JS中不同HTML输入的所有可用属性。