【问题标题】:Javascript disable select box on another select box optionJavascript禁用另一个选择框选项上的选择框
【发布时间】:2013-10-22 03:20:12
【问题描述】:

我有两个选择下拉列表:

<select name="internal_message">
<option value="yes">Yes</option>
<option value="" selected="selected">No</option>
</select>

<select name="internal_message_agent">
<option value="">Choose</option>.... etc
</select>

我试过了:

<select name="internal_message">
            <option value="yes" onClick="document.getElementById('internal_message_agent').disabled=!this.selected;">Yes</option>
            <option value="" selected="selected">No</option>
            </select>

但它不起作用 - 当 internal_message 选择的值为 "No" 时,我如何让它工作以禁用要禁用的 internal_message_agent 选择元素,并在选择的选项为 "Yes" 时启用它

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    为每个选择添加一个 ID 并使用 jquery 来禁用它,如下所示:

    $('#box1').on('change', function(){
    if($(this).val()==='no'){
        $('#box2').attr('disabled', 'disabled');
    }else{
        $('#box2').attr('disabled', false);
    }
    });
    

    http://jsfiddle.net/3MCaG/1/

    【讨论】:

    • 好答案。我还会将 disabled 属性添加到 internal_message_agent 并在列表中添加一个额外的空白 &lt;option&gt;&lt;/option&gt; 以防止任何默认选择。 +1!
    • 如果选择了 internal_message 选项“否”,那么 internal_message_agent 将被禁用,如果选择的选项为“是”,那么 internal_message_agent 将被启用
    • 我不认为我理解你的问题。
    • 如果 internal_message = 'Yes' then internal_message_agent = enabled else if internal_message = 'No' then internal_message_agent = disabled
    • 它不能那样工作 - 它根本没有禁用?
    【解决方案2】:

    这是 Javascript 和 HTML 的样子。

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <script>
    function validate(){
        var b1 = document.getElementById("box1");
        var f = b1.options[b1.selectedIndex].value;
        var b2 = document.getElementById("box2");
            if(f == "no"){
            b2.disabled="disabled";
            }
        else{
        b2.disabled="";
        }
    }
    </script>
    <select id="box1" onchange="validate()">
        <option id="yes" value="yes">Yes</option>
        <option id="no" value="no" selected="selected">No</option>
    </select>
    
    <select id="box2" disabled>
        <option></option>
        <option value="">Choose</option>
    </select>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      相关资源
      最近更新 更多