更改后恢复到以前的下拉选项

时间:2015-08-31 作者:Guit4eva

我有两个下拉列表(使用selected.js)。第二个下拉列表显示自定义类别:

<script type="text/javascript">
  jQuery(document).ready(function($) {
    $(\'select[name="post_type"]\').change(function (event) {
        if ($(\'select[name="post_type"]\').val() === \'test\') {
            $(\'select[name="second_dropwdown"]\').html("<option>Sorry, no options</option>");
            $(\'#second_dropwdown\').prop(\'disabled\', true).trigger(\'chosen:updated\');
        }else{
            $(\'#second_dropwdown\').prop(\'disabled\', false).trigger(\'chosen:updated\');
        }
    });
  });
</script>
如果我在第一个下拉列表中选择“测试”,则第二个下拉列表将被禁用并显示“抱歉,没有选项”。我的问题是,当您随后选择除“test”之外的任何内容时,第二个下拉列表不会再次填充类别。我该怎么做呢?即,恢复到以前的选项:

$(\'#second_dropwdown\').prop(\'disabled\', true).trigger(\'chosen:updated\');
提前谢谢!!

1 个回复
最合适的回答,由SO网友:Will 整理而成

您正在使用以下命令将第二个下拉列表的HTML设置为基本空白:

$(\'select[name="second_dropwdown"]\').html("<option>Sorry, no options</option>");
因此,当您再次启用它时,这是唯一的选择。相反,您可以尝试将其作为实际选项包含在select中,然后在禁用第二个下拉列表时选择它。您可以将其包含在HTML中,也可以通过JavaScript添加。下面是后者的一个例子。

  jQuery(document).ready(function ($) {
      var $secondDropdown = $(\'#second_dropdown\'), 
          $noOptions;

      // adding the the option with js
      $secondDropdown.append(\'<option id="no-options">Sorry, no options!</option>\');

      // by default, no one needs to see it.
      $noOptions = $(\'#no-options\').hide();

      $(\'select[name="post_type"]\').change(function (event) {
          if ($(\'select[name="post_type"]\').val() === \'test\') {
              // Now, select the option and show it
              $noOptions.prop(\'selected\', true).show();
              $secondDropdown.prop(\'disabled\', true).trigger(\'chosen:updated\');
          } else {
              // back in business so let\'s hide it again.
              $noOptions.hide();
              $secondDropdown.prop(\'disabled\', false).trigger(\'chosen:updated\');
          }
      });
  });
下面是一个活生生的例子:http://jsfiddle.net/4ngmhmup/

相关推荐

JQuery php请求返回一个奇怪的结果

我有一个奇怪的小故障发生在我身上,我不知道我是如何产生它的,或者它是否是正常的。我正在开发自己的插件,当一个足球队/足球队被输入到一个框中时,它会检查它是否已经在数据库中。以下是我的代码行add_action( \'admin_footer\', \'fws_teamcheck_javascript\' ); function fws_teamcheck_javascript() { ?> <script type="text/javascript">