单击复选框时,从选择标记启用选项

时间:2013-11-04 01:09:37

标签: javascript

有一个选择下拉列表,其中一个选项最初被禁用。我想要的是在单击复选框时启用选项。不知道如何在单个选项上执行此操作,而是启用/禁用整个选择下拉列表:(。

    <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>

3 个答案:

答案 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;
    }
 }
相关问题