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

时间:2016-06-11 18:14:09

标签: javascript twitter-bootstrap datepicker

我通过从嵌入/内联引导程序datetimepicker获取所选值来解决问题。

这是我的代码:

<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>

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

我已经从bootstrap文档中获取了代码。

有人知道它是如何运作的吗? 感谢。

3 个答案:

答案 0 :(得分: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); });

请参阅以下解决方案:

&#13;
&#13;
$(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());
  });
});
&#13;
#selected-date,
#hidden-val {
  font-weight: bold;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在div(嵌入式datetimepicker的容器)中添加隐藏的输入。并且,datetimepicker将自动使用它。在4.17.47版上进行了测试。

答案 2 :(得分:0)

下面的隐藏输入对我有用

<input type="hidden" name="date" id="my_hidden_input" value="">

通过 id 将 datetimepicker 直接分配给隐藏元素

<script>
    $(function(){
        $('#my_hidden_input').datetimepicker({
            inline: true, 
            sideBySide: true
        });
    });
</script>