【问题标题】:Date Picker after selecting an item on a dropdown在下拉列表中选择项目后的日期选择器
【发布时间】:2017-10-02 01:13:55
【问题描述】:

我正在尝试创建一个具有下拉值的输入字段。如果选择了某个项目(选择日期),我希望它显示一个日期选择器以便能够选择一个日期。

我的问题是:

  1. 如果选择“选择日期”,日期选择器对话框不会立即弹出。您必须再次单击该字段才能显示它。

  2. 选择“选择日期”后,现在每次单击该字段时都会显示日期选择器。日期选择器应仅在选择“选择日期”时显示。

这是我的代码:

$('.dropdown-menu a').click(function() {
  var selectValue = $(this).attr('data-value');
  var selectText = $(this).attr('data-text');

  if (selectValue == 3) {
    $('#date_select').datepicker({
      daysOfWeekDisabled: "0,6",
      autoclose: true,
      todayHighlight: true
    });
    $("#date_select").datepicker("show");
  } else {
    $("#date_select").val(selectText);
  }
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://uxsolutions.github.io/bootstrap-datepicker/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
<div id="pickDate" class="input-group dropdown date">
  <input type="text" id="date_select" class="form-control" data-toggle="dropdown" required/>
  <ul class="dropdown-menu" id="date_menu">
    <li><a href="#" data-value="1" data-text="Soon">Soon</a></li>
    <li><a href="#" data-value="2" data-text="Someday">Someday</a></li>
    <li><a href="#" data-value="3" data-text="Select Date">Select Date</a></li>
  </ul>
  <span class="input-group-addon" data-toggle="dropdown">
      <span role="button" class="caret"></span>
  </span>
</div>

我正在使用引导日期选择器。

【问题讨论】:

  • 第一次尝试selectValue 得到了什么?
  • 我得到了 3。我在 "if" 语句上使用了 alert(selectValue) 来测试它。
  • 第一次触发click事件后,selectValue的值始终为3。由于下拉菜单已更改为日期选择器,因此无论点击事件多次触发,它都会显示日期选择。
  • 我通过添加 $('#pickDate').datepicker('remove');在函数的最后。但我仍然有日期选择器对话框未显示的问题是选择了“选择日期”。
  • 你为 datepicker 使用了哪个库?

标签: jquery twitter-bootstrap datepicker dropdown


【解决方案1】:

请查看问题 #2 的修改代码

 $('.dropdown-menu a').click(function () {
  var selectValue = $(this).attr('data-value');
  var selectText = $(this).attr('data-text');
  if (selectValue == 3) {
  $('#pickDate').datepicker({
    daysOfWeekDisabled: "0,6",
    autoclose: true,
    todayHighlight: true
  });
    $('.ui-datepicker').css("display","block");
  }
  else {
    $('#date_select').val(selectText);

    $('.ui-datepicker').css("display","none");
  }
 });

只有当您选择选项 3 时才会显示日期选择器,否则它将被隐藏。

让我知道它是否适合你。

对于问题 1:您能否简要介绍一下“您必须再次单击该字段才能显示它”。您的预期输出是什么?

【讨论】:

  • 感谢您。对于问题 1,当我在下拉菜单中选择“选择日期”时,它不会立即显示日期选择器对话框。您必须再次单击该字段才能显示日期选择器。我猜你第一次点击“选择日期”时,它只启用日期选择器,但实际上并没有显示它。
  • 看起来当我单击您的代码 sn-p 并选择选择日期时,它会快速显示日期选择器。
  • 如果它适合您,您是否也可以接受答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2013-06-20
  • 2023-02-21
  • 1970-01-01
相关资源
最近更新 更多