javascript - jQuery/bootstrap 在单击按钮时显示日期选择器并将值分配给变量而不输入文本

标签 javascript jquery datepicker

对 jQuery 很陌生,所以请耐心等待...

我想在单击按钮时显示日期选择器。日期选择器应显示为弹出窗口并将所选日期分配给变量。

到目前为止我的尝试

<button type="button" class="btn btn-primary" onclick='snapshot_btn()'>
  Snapshot 
</button><input type="hidden" id="button_snapshot" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.min.js"></script>

main.js

function snapshot_btn() {
    $("#button_snapshot").datepicker({
        showOn: 'both',
        onSelect: function () {
            var dateObject = $(this).datepicker('getDate');
            alert(dateObject);
        }
    });    
}

但是当我单击按钮时,日期选择器不显示。

在其他输入框上正常显示。

最佳答案

编辑
由于在您最初的问题中您没有说它是 bootstrap datepicker,而不是 jQuery datepicker,所以我使用 jQuery datepicker 做出了这个答案。

您需要添加两个库(jquery,然后是 jquery UI,检查代码片段以获取链接),之后, 只需使用下面的代码,在 onSelect 函数中,获取日期作为参数,它已经包含了选择。

我做了一些小小的更改,删除了 input type='hidden',并添加了一个空的 div,这样日历就会内联显示。

我的示例还使日历消失并在单击时重新出现,看看。

function snapshot_btn() {
  var btnOpenCalendar = $("#btnOpenCalendar");
  
  if (btnOpenCalendar.hasClass('calendar-open')){
    btnOpenCalendar.removeClass("calendar-open");
    $("#button_snapshot").datepicker("destroy");
    
  }else{
    btnOpenCalendar.addClass("calendar-open");
    $("#button_snapshot").datepicker({
        showOn: 'both',
        onSelect: function (date) {
            alert(date);
        }
    });  

  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<button type="button" id='btnOpenCalendar' class="btn btn-primary" onclick='snapshot_btn()'>
  Snapshot 
</button>
<div id="button_snapshot"></div>

关于javascript - jQuery/bootstrap 在单击按钮时显示日期选择器并将值分配给变量而不输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50009879/

相关文章:

java - 替代已弃用的 java date.sethours

android - Jquery 日期选择器未显示在 Android Webview 中。在 native 浏览器中工作

android - 如何获取日期、小时、分钟以达到特定日期

javascript - ExecuteScript 不执行 html 中描述的函数,这些函数在页面加载后运行

javascript - ng-重复 : how do I properly reference $odd or $even by variable?

javascript - Openlayers 3 无法删除功能

javascript - 跳转滚动并重定向到博客上同一博客的另一页

javascript - 检查javascript的功能测试

jquery - 回调成功未调用,状态码为201

javascript - 根据季节(当前日历月)更改 <body> 的背景图片(在 CSS 中)