首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单选按钮交互中启用/禁用文本字段?

如何在单选按钮交互中启用/禁用文本字段?
EN

Stack Overflow用户
提问于 2011-07-12 16:25:04
回答 3查看 5.9K关注 0票数 0

无法使其正常工作。第一次使用传递给函数的变量。取消选中单选按钮应禁用表单域,反之亦然。lineid变量将此无线电/文本输入对与其他10个输入对区分开来。

我的代码:

代码语言:javascript
复制
<script type="text/javascript">
function disablefield(lineid){ 
if (document.getElementById(lineid).checked == true){ 
document.dupedit.lineid.disabled = false;
} else { 
document.dupedit.lineid.disabled = true;
} 
}
</script>

我的HTML的子集。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-12 16:28:47

您需要将一个字符串传递到disablefield函数中,因此在传递该值时将其放在引号中。类似于:

<input onclick="disablefield('2671997')" />

这是因为document.getElementById需要的是字符串,而不是整数。

其次,要启用/禁用该字段,需要使用disabled = true;而不是= 'disabled'

document.dupedit.lineid正在查找名为"lineid“的字段,该字段在您的表单中不存在。我建议给该字段一个id,并再次使用document.getElementById

如果您希望继续使用name属性,则必须改为使用document.getElementsByName。这将返回一个匹配元素的数组(因为多个元素可以共享相同的名称),但是如果在您的代码中知道有问题的元素是唯一具有该名称的元素,则可以这样做:

代码语言:javascript
复制
document.getElementsByName(lineid)[0].disabled = true;

你可以看到一个工作版本(我想这就是你想要的) here。而here是一个使用getElementsByName的版本。

票数 2
EN

Stack Overflow用户

发布于 2011-07-12 16:31:08

函数上缺少右大括号:

代码语言:javascript
复制
function disablefield(lineid){ 
if (document.getElementById(lineid).checked == true){ 
document.dupedit.lineid='enabled';
}else{ 
document.dupedit.lineid='disabled';
} 
} //<-- here

另外,我建议您将this传递给函数。这样你就不必调用getElementById

代码语言:javascript
复制
<input onclick='disablefield(this)' type.....

function disablefield(obj){ 
    if (obj.checked == true){ 
        document.dupedit.lineid='enabled';
    }else{ 
        document.dupedit.lineid='disabled';
    } 
} 
票数 1
EN

Stack Overflow用户

发布于 2011-07-12 16:51:57

我认为你需要的是重新思考代码。

  • 不在复选框中使用ID。最好将ID移动到要禁用/启用文本字段,并检查该字段是否已禁用/启用,而不是复选框本身,并使用cleaner JS。

请看一下,我已经为您编译好了。它能做你想要的吗,丹?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6661369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档