无法使其正常工作。第一次使用传递给函数的变量。取消选中单选按钮应禁用表单域,反之亦然。lineid变量将此无线电/文本输入对与其他10个输入对区分开来。
我的代码:
<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的子集。
发布于 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。这将返回一个匹配元素的数组(因为多个元素可以共享相同的名称),但是如果在您的代码中知道有问题的元素是唯一具有该名称的元素,则可以这样做:
document.getElementsByName(lineid)[0].disabled = true;你可以看到一个工作版本(我想这就是你想要的) here。而here是一个使用getElementsByName的版本。
发布于 2011-07-12 16:31:08
函数上缺少右大括号:
function disablefield(lineid){
if (document.getElementById(lineid).checked == true){
document.dupedit.lineid='enabled';
}else{
document.dupedit.lineid='disabled';
}
} //<-- here另外,我建议您将this传递给函数。这样你就不必调用getElementById了
<input onclick='disablefield(this)' type.....
function disablefield(obj){
if (obj.checked == true){
document.dupedit.lineid='enabled';
}else{
document.dupedit.lineid='disabled';
}
} 发布于 2011-07-12 16:51:57
我认为你需要的是重新思考代码。
请看一下,我已经为您编译好了。它能做你想要的吗,丹?
https://stackoverflow.com/questions/6661369
复制相似问题