2010-10-20 102 views
0

我想使html选择标记仅在选中复选框时激活,我怎么能?HTML选择标记激活和关闭

+4

您需要JavaScript才能正常使用。考虑添加'javascript'标签。 – 2010-10-20 00:23:06

+0

@Sime:起初我以为这是一些残酷的讽刺,说在HTML中加入''就能解决问题。然后我明白了:D – Matchu 2010-10-20 00:45:09

+0

大声笑是的,我的评论应该表达得更好。如果OdO不理解它,我的意思是这个问题需要JavaScript,所以在这个问题的标签中加入'javascript'是适当的。至于现在,这个问题只有'html'标签集。 – 2010-10-20 11:07:53

回答

3

使用Javascript

<script type='text/javascript'> 

    if(document.getElementById("myCheckbox").checked) { 
     document.getElementById("mySelect").disabled = ""; 
    } 
    else { 
     document.getElementById("mySelect").disabled = "disabled"; 
    } 

</script> 

当该代码被调用时,如果复选框被选中,并禁止选择适当的检查。

或者,用PHP/HTML:

<form action='' method='post'> 
<select <?PHP if($_POST['myCheckbox']==1) { echo "disabled='disabled'"; } ?> > 
<option>blah</option> 
</select> 

<input type='checkbox' name='myCheckbox' value='1' /> 
</form> 

当提交表单时,该检查箱子已经POST版,并禁止选择适当的。

+0

是不是'禁用'属性布尔? – 2010-10-20 11:00:14

+0

我认为我自己,但我发现它有时打破布尔值...不幸的是我忘记了确切的情况。 – Ben 2010-10-21 00:05:45

+0

Steve,这两个代码都不起作用,并且选择始终处于启用状态 – 2010-10-21 13:28:16

2
function handler() { 
    var checkbox = document.getElementById("myCheckbox"); 
    var select = document.getElementById("mySelect"); 

    select.disabled = !checkbox.checked; 
} 

我测试disabled属性:它可以被设置为true/false"disabled"/""。这两种方法都适用于所有浏览器。

(我在Chrome,Firefox,Safari,Opera和IE9 beta测试过)

+0

是否有您不使用'select.disabled =!checkbox.checked'而不是可读性的原因? – 2010-10-20 11:18:00

+0

@Dave我没有想到它。好主意。但是,我不确定是否将布尔值设置为禁用属性是跨浏览器安全的。 – 2010-10-20 11:27:34