复选框以禁用/启用输入

时间:2010-12-17 23:31:24

标签: javascript

我正在使用js来勾选一个复选框,它启用或禁用文本输入。

一直有效,直到我用google jquery api把它放到一个实时表单中。

很奇怪,但......某处必定是冲突。

表单元素是:(代码不能正确添加到此帖子)

<input type="checkbox" name="others" onclick="enable_text(this.checked)" class="medium" /></div>

信用卡上的姓名(如果与上述不同)

js是:

function enable_text(status)
{
status=!status;
document.form1.other_name.disabled = status;
}

我做错了什么,我使用了body onload handler。

<body onload=enable_text(false);>

JS FIDDLE:http://www.jsfiddle.net/ozzy/H8VPY/4/

3 个答案:

答案 0 :(得分:4)

这里是一个jQuery解决方案:

$("input:checkbox").click(function() {
    $("input:text").attr("disabled", !this.checked); 
});

只需将这些通用选择器替换为更具体的选择器。

除了此代码之外,您可能还希望禁用(最初)文本框。

<input type="text" disabled="disabled" />

工作演示: http://www.jsfiddle.net/H8VPY/11/

答案 1 :(得分:3)

你的jsfiddle演示中有几个问题。

  • 应删除<script>及其周围的评论。
  • 缺少<form name="form1">,导致document.form1无法返回任何内容。
  • 左侧菜单上的 onLoad 选项应该是 no wrap(head),因为它只是一个函数。

更新了演示:http://www.jsfiddle.net/PPZYm/

答案 2 :(得分:2)

<强> Live Example

function enable_text(status) {
    status = (status) ? false : true; //convert status boolean to text 'disabled'
    document.form1.other_name.disabled = status;
}

注意

您还需要在jsfiddle示例中使用名称为div的{​​{1}}标记打包<form>,以便正常使用

form1