从内联/嵌入式引导程序datepicker获取值

Flo*_*anb 4 javascript datepicker twitter-bootstrap

从嵌入/内联引导日期时间选择器中获取所选值,我遇到了问题.

这是我的代码:

<div class="col-lg-8 datepicker_area" style="background: red;">
                <div style="overflow:hidden;">
                    <div class="form-group">
                        <div class="row">
                            <div class="col-md-8">
                                <div id="datetimepicker" data-date="12/03/2012 12:00 PM"></div>
                                <input type="hidden" name="date" id="my_hidden_input" value="">
                            </div>
                        </div>
                    </div>
                    <script type="text/javascript">

                        $("#datetimepicker").on("changeDate", function(event) {
                            $("input[type='hidden'][name='date']").val(
                                    $('#datetimepicker').datepicker('getFormattedDate')
                            )
                        });

                        $(function () {
                            $('#datetimepicker').datetimepicker({
                                inline: true,
                                sideBySide: true
                            });

                            $('#datetimepicker').datetimepicker();
                            $('#datetimepicker').on("changeDate", function() {
                                $('#my_hidden_input').val(
                                        $('#datetimepicker').datetimepicker('getFormattedDate')
                                );
                            });


                        });
                    </script>
                </div>

            </div>
Run Code Online (Sandbox Code Playgroud)

我隐藏的输入没有任何变化.他没有保存它的价值.

我从bootstrap文档中获取了代码.

有人知道它是如何工作的吗?谢谢.

T. *_*Ben 5

根据Bootstrap 3 Datepicker,你需要dp.change活动.

参考:http://eonasdan.github.io/bootstrap-datetimepicker/Events/

将changeDate事件替换$('#datetimepicker').on("changeDate", function() {});$('#datetimepicker').on('dp.change', function(event) {});

您可以使用event.date甚至更好地获取日期,格式化日期event.date.format('MM/DD/YYYY h:mm a')

例: $('#datetimepicker').on('dp.change', function(event) { alert(event.date); });

请参考以下解决方案:

$(function() {
  $('#datetimepicker').datetimepicker({
    inline: true,
    sideBySide: true
  });
  $('#datetimepicker').on('dp.change', function(event) {
    //console.log(moment(event.date).format('MM/DD/YYYY h:mm a'));
    //console.log(event.date.format('MM/DD/YYYY h:mm a'));
    $('#selected-date').text(event.date);
    var formatted_date = event.date.format('MM/DD/YYYY h:mm a');
    $('#my_hidden_input').val(formatted_date);
    $('#hidden-val').text($('#my_hidden_input').val());
  });
});
Run Code Online (Sandbox Code Playgroud)
#selected-date,
#hidden-val {
  font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/e8bddc60e73c1ec2475f827be36e1957af72e2ea/build/css/bootstrap-datetimepicker.css" rel="stylesheet" />
<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.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.js"></script>
<script src="https://cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/e8bddc60e73c1ec2475f827be36e1957af72e2ea/src/js/bootstrap-datetimepicker.js"></script>
<div>
  Selected Date: <span id="selected-date"></span>
  <br/>
  <br/>Value of hidden field: <span id="hidden-val"></span>
  <br/>
</div>
<div class="col-lg-8 datepicker_area" style="background: red;">
  <div style="overflow:hidden;">
    <div class="form-group">
      <div class="row">
        <div class="col-md-8">
          <div id="datetimepicker" data-date="12/03/2012 12:00 PM"></div>
          <input type="hidden" name="date" id="my_hidden_input" value="">
        </div>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


小智 5

将隐藏的输入移动到 div(内联日期时间选择器的容器)内。而且,datetimepicker 会自动使用它。在版本 4.17.47 上测试。

<div class="col-md-8">
   <div id="datetimepicker" data-date="12/03/2012 12:00 PM">
       <input type="hidden" name="date" id="my_hidden_input" value="">
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)