【问题标题】:JQuery / Bootstrap datepicker on click dropdown点击下拉菜单上的 JQuery / Bootstrap 日期选择器
【发布时间】:2018-08-17 14:20:41
【问题描述】:

我是前端开发的新手,所以请原谅我在这里的无知,但我有 Bootstrap 下拉菜单,当用户点击它们时,我希望它拉起日期选择器,以便用户选择日期。然后我最终会将菜单选择和日期选择传递给变量,但我什至无法在选择菜单时让日期选择器弹出。

以下是我尝试过的几个示例,尽管我尝试了很多不同的技术。我从 Pere 对这个线程 JQuery UI Datepicker: Making a link trigger datepicker 的建议中得到的第一个,但是当我运行它时,我收到一个错误,说 datepicker 不是一个函数。我相信这里的某个人会马上看到这个并且能够找出我做错了什么,所以请帮助我。

$(document).ready(function () {
    $('#datepicker').datepicker()
    $('.dropdown-item').click(function () {
            $('#datepicker').toggle()
    });
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>


            
 <div class="btn-group">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
        Menu
    </button>
      <div class="dropdown-menu">
          <a class="dropdown-item" id="1">1</a>
          <a class="dropdown-item" id="2">2</a>
          <a class="dropdown-item" id="3">3</a>
          <a class="dropdown-item" id="4">4</a>
          <input type=date id=datepicker>
       </div>
</div>

$(document).ready(function () {
    $('#datepicker').hide()
    $('.dropdown-item').click(function () {
            $('#datepicker').show()
    });
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>


            
 <div class="btn-group">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
        Menu
    </button>
      <div class="dropdown-menu">
          <a class="dropdown-item" id="1">1</a>
          <a class="dropdown-item" id="2">2</a>
          <a class="dropdown-item" id="3">3</a>
          <a class="dropdown-item" id="4">4</a>
          <input type=date id=datepicker>
       </div>
</div>
                 

【问题讨论】:

  • 日期选择器在哪里定义?您似乎没有为其添加脚本。
  • 对不起,我对JQuery真的不是太有经验,但我以为它是JQuery中的预定义函数?在这里,看起来他们并没有定义它,而不仅仅是调用它:jqueryui.com/datepicker/#icon-trigger
  • 这就是 jQueryUI - 一套完全不同的工具,用于使用 wth jQuery...你需要下载它并将相关的脚本标签添加到你的脑海中。
  • 叹息...感谢您的耐心等待。让我们看看我是否可以在我拥有正确的库后让它工作。
  • 我现在得到了正确的脚本,但我仍然无法让它工作。任何人都可以提供任何提示吗?我真的很沮丧,这不起作用。 :(

标签: javascript jquery html datepicker bootstrap-4


【解决方案1】:

如果有人偶然发现和我一样的问题,在拔掉我一整天的头发之后,下面是我最终解决的问题,它有效!它返回日期和下拉行的 ID,因此我可以将其传递到我更大的应用程序中。

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Datepicker</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <script src="../static/bootstrap-datepicker.js"></script>
    <link href="../static/bootstrap-datepicker.css" rel="stylesheet" />
    <script>
        $(document).ready(function () {

            $('.dropdown-item').datepicker({
                format: 'mm/dd/yyyy'
            });

            $('.dropdown-item').on('changeDate', function (event) {
                alert(this.id + ' ' + event.format());
            });
        });
    </script>
</head>
<div class="btn-group">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
        Menu
    </button>
    <div class="dropdown-menu">
        <a class="dropdown-item" id="1">1</a>
        <a class="dropdown-item" id="2">2</a>
        <a class="dropdown-item" id="3">3</a>
        <a class="dropdown-item" id="4">4</a>
        <input id=datepicker />
    </div>
</div>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多