- 您的示例中没有复选框。
- 不要使用内联事件处理
- 如果您仍然选择这样做,请将对象传递给函数
JavaScript 解决方案
Live Demo
window.onload=function() {
var promised = document.getElementsByName("Promised4");
for (var i=0;i<promised.length;i++) {
promised[i].onclick=function() {
var rads = this.form[this.name];
for (var i=0;i<rads.length;i++) {
var textField = this.form[rads[i].value.toLowerCase()+"Specify"];
if (textField) textField.disabled = !rads[i].checked;
}
}
}
}
jQuery解决方案
Live Demo
$(function() {
var $promised = $("input[name='Promised4']");
$promised.each(function() {
$(this).on("click",function() {
$promised.each(function() {
var textField = $(this).nextAll("input").first();
if (textField) textField.prop("disabled",!this.checked);
});
});
});
});
使用
<form>
<input type="radio" name="Promised4" id="rbYes" value="Yes" ><label for="rbYes">a. Yes</label><br/>
<input type="radio" name="Promised4" id="rbNo" value="No" ><label for="rbNo">b. No (please specify)</label>
<input type="text" name="noSpecify" id="noSpecify" value="" disabled="disabled" /><br/>
<input type="radio" name="Promised4" id="rbOther" value="Other" ><label for="rbOther">c. Other (please specify)</label>
<input type="text" name="otherSpecify" id="otherSpecify" value="" disabled="disabled"/><br/>
</form>