这段代码有几处错误:
- 你用
<input>
错了方法。<label>
如果你想让它后面的文本可点击,你应该使用。
- 它正在设置
enabled
不存在的属性。改为使用disabled
。
- 如果它是一个属性,它的值不应该是
false
、使用disabled="disabled"
或根本disabled
没有值。
- 如果检查是否有人点击了会更改其值的表单事件(如复选框和单选按钮),请
.change()
改用。
我不确定你的代码应该做什么。roomNumber
我的猜测是,一旦有人选择“Walk in”(并且可能在取消选择时重新启用),您就想禁用带有类的输入字段。如果是这样,请尝试以下代码:
HTML:
<form class="type">
<p>
<input type="radio" name="type" checked="checked" id="guest" value="guest" />
<label for="guest">In House</label>
</p>
<p>
<input type="radio" name="type" id="walk_in" value="walk_in" />
<label for="walk_in">Walk in</label>
</p>
<p>
<input type="text" name="roomnumber" class="roomNumber" value="12345" />
</p>
</form>
Javascript:
$("form input:radio").change(function () {
if ($(this).val() == "walk_in") {
// Disable your roomnumber element here
$('.roomNumber').attr('disabled', 'disabled');
} else {
// Re-enable here I guess
$('.roomNumber').removeAttr('disabled');
}
});
我在这里创建了一个小提琴:http: //jsfiddle.net/k28xd/1/