有一个选择下拉列表,其中一个选项最初被禁用。我想要的是在单击复选框时启用仅选项。不知道如何在单个选项上执行此操作,而是启用/禁用整个选择下拉列表:(。
<input type='checkbox' id='details' name='form_details<?php if ($form_details) echo ' checked'; ?> onchange='enableOption()';>
<select name='form_summarize_by' id='summarize_by'>
<?php
echo " <option value='0'>Orange</option>\n";
echo " <option value='1'" . (!$form_details ? "disabled='disabled'":"" ) . ">Pear</option>";
?>
<script type="text/javascript">
function enableOption(){
if(document.getElementById('details').checked == true)
{
document.getElementById('summarize_by').removeAttribute('disabled');
}
else
{
document.getElementById('summarize_by').setAttribute('disabled', 'disabled');
}
}
</script>
答案 0 :(得分:0)
在选项上添加id,然后更改选项上的disabled属性而不是整个select。它还有助于在属性之间留出空格。
<input type='checkbox' id='details' name='form_details' <?php if ($form_details) echo ' checked'; ?> onchange='enableOption()';>
<select name='form_summarize_by' id='summarize_by'>
<?php
echo " <option value='0'>Orange</option>\n";
echo " <option id="summarize_by_option" value='1' " . (!$form_details ? "disabled":"" ) . " >Pear</option>";
?>
<script type="text/javascript">
function enableOption(){
if(document.getElementById('details').checked == true)
{
document.getElementById('summarize_by_option').removeAttribute('disabled');
}
else
{
document.getElementById('summarize_by_option').setAttribute('disabled', 'disabled');
}
}
</script>
答案 1 :(得分:0)
如果复选框和选择元素位于表单中,则可以在复选框上执行以下操作:
onclick="this.form.form_summarize_by.options[1].disabled = this.checked;"
或使用函数:
onclick="updateDisabled(this);"
和功能:
function updateDisabled(cb) {
cb.form.form_summarize_by.options[1].disabled = cb.checked;
}
答案 2 :(得分:0)
谢谢!我能够像这样解决它:
function enableOption(){
if(document.getElementById('details').checked == true)
{
document.getElementById('summarize_by').options[1].disabled=false;
}
else
{
document.getElementById('summarize_by').options[1].disabled=true;
}
}