【问题标题】:jquery on certain option select on first select list, enable second select listjquery 在某些选项上选择第一个选择列表,启用第二个选择列表
【发布时间】:2013-06-23 08:40:18
【问题描述】:

我正在尝试解决您有两个选择列表并且在第一个列表的第一个和第二个选项上启用第二个列表的情况。

好的,我有#decide#day 选择列表,#day 默认禁用。如果用户从#decide 列表中选择选项yes:maybe:,则#day 列表将启用

$('#day').prop('disabled', false);

否则,如果选择了任何其他选项,它会将禁用的属性返回给#day:

$('#day').prop('disabled', true);

目前我只有html:

 <select id="decide" name="decide" class="span4">
    <option value="0" selected="selected">--</option>
    <option value="yes">yes:</option>
    <option value="maybe">maybe:</option>
    <option value="no">no</option>
    <option value="nevermind">nevermind</option> 
</select>
<select id="day" name="day" class="span4" disabled>
    <option value="0" selected="selected">--</option>
    <option value="1">monday</option>
    <option value="2">tuesday</option>
    <option value="3">saturday</option>
    <option value="4">sunday</option> 
</select>

以及使用部分 qouted 的 jquery 代码来解决它的想法

这是当前情况的 jsfiddle:http://jsfiddle.net/3hwzK/

【问题讨论】:

  • 你有没有尝试过?你的小提琴里没有JS。这不是一个“解决我的问题”论坛。你需要自己动手试一试。我们将帮助您解决问题,而不是为您编写。
  • 是的,我当然试过了......因为我已经写了我用过的js,但我已经从小提琴中删除了,因为它不起作用......我遇到的主要问题是我的第一个列表中的值并不是第二个列表中的所有有序数字......这就是我被卡住的地方......如果你不相信我,那就是你的事......

标签: jquery select option prop


【解决方案1】:

也许是这样的:

$("#decide").change(function () {
    $("#day").prop("disabled", !(["yes", "maybe"].indexOf(this.value) !== -1));
});

演示:http://jsfiddle.net/hungerpain/3hwzK/2/

【讨论】:

    【解决方案2】:

    你可以试试这个,

              $("#decide").change(function (){
                  if(this.value == "yes" || this.value == "maybe"){
                       $("#day").removeAttr("disabled");
                  }else{
               $("#day").attr("disabled", "true");
               }
               });
    

    如果您选择的值为“yes”或“maybe”,则“#day”选择框将被启用,否则它将被禁用。

    【讨论】:

    • 是的,我在@mohkhan 示例中拼错了一些东西,这是我最喜欢的解决方案...谢谢
    • attr 不再使用。尝试将其更改为prop
    【解决方案3】:

    我添加了这个 JS 代码:

    $("#decide").change(function () {
      $('#day').prop('disabled', false);  });
    

    JSFiddle工作得很好

    【讨论】:

    • 谢谢,但这不是解决方案...因为第二个#day 列表必须仅在从第一个列表中选择“是:”或“可能:”时启用...选择其他选项,#day 不会启用
    【解决方案4】:

    这应该可以...

    $(document).on('change', "#decide", function(){
    if(this.value == "yes" || this.value == "maybe"){
        $("#day").removeAttr("disabled");
    }else{
        $("#day").attr("disabled", "true");
    }
    });
    

    【讨论】:

    • 这已经是...但我真正需要的是启用yes和也许选项...类似jsfiddle.net/SDzUS但其他部分似乎不起作用,为什么?跨度>
    【解决方案5】:

    你也可以使用这种方法..http://jsfiddle.net/3hwzK/3/

    $("#decide").change(function () {
        var valid_answers = ['yes', 'maybe'];
        var is_disabled = ($.inArray($(this).val(), valid_answers) > -1) ? false : true;
        $('#day').prop('disabled', is_disabled); 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 2012-03-21
      • 1970-01-01
      • 2023-03-05
      • 2014-06-20
      • 1970-01-01
      • 2023-04-02
      • 2023-02-23
      相关资源
      最近更新 更多