将日期范围选择器开始日期设置为空白

Ege*_*rak 4 javascript jquery momentjs bootstrap-daterangepicker

我有一个基于http://www.daterangepicker.com的日期范围选择器的日期范围选择器,我想将开始日期设置为空.这将适用于我想要做的事情.

我正在使用文本输入字段来获取日期

</span><input type="text" class="form-control" id="reservation" />
Run Code Online (Sandbox Code Playgroud)

在网站上有一个设置"输入最初为空"的例子,但我无法让它工作.基本上我不知道在哪里设置它似乎.

我的日期范围选择器位于局部视图内,并由另一个视图调用.页面脚本在视图中设置,调用部分脚本.在daterangepicker.js脚本中我发现了这些行;

//default settings for options
        this.parentEl = 'body';
        this.element = $(element);
        this.startDate = moment().startOf('day');
        this.endDate = moment().endOf('day');
        this.minDate = false;
        this.maxDate = false;
        this.dateLimit = false;
        this.autoApply = false;
        this.singleDatePicker = false;
        this.showDropdowns = false;
        this.showWeekNumbers = false;
        this.timePicker = false;
        this.timePicker24Hour = false;
        this.timePickerIncrement = 1;
        this.timePickerSeconds = false;
        this.linkedCalendars = true;
        this.autoUpdateInput = true;
        this.ranges = {};
Run Code Online (Sandbox Code Playgroud)

据我所知,他们是基于moment.js.我试过操纵this.startDate但无法设法将其设置为空值.使用this.startdate = null使整个日期范围选择器停止工作所以我想我需要像空日期相当于moment.js.或者完全不同的东西.

谁能告诉我怎么做?

Nee*_*iya 13

我用这个解决了这个问题......我希望这个问题可以帮助你。 输入标签


    <div class="form-group">
        <label>Due date:</label>
        <div class="input-group">
            <input type="text" 
                class="form-control float-right" 
                id="duetime"
                name="due_time" 
                autocomplete="off" 
             />
        </div>
    </div>

Run Code Online (Sandbox Code Playgroud)

脚本

<script>
 $(function(){

    $("#duetime").daterangepicker({
        autoUpdateInput: false,
        minYear: 1901,
        showDropdowns: true,
        singleDatePicker: true,
        timePicker: true,
        timePicker24Hour: false,
        timePickerIncrement: 05,
        drops: "up",
        locale: {
            format: 'MM/DD/YYYY hh:mm A'
        }
    }).on("apply.daterangepicker", function (e, picker) {
        picker.element.val(picker.startDate.format(picker.locale.format));
    });

 });
</script>
Run Code Online (Sandbox Code Playgroud)

注意:我从这个来源找到了这个https://github.com/dangrossman/daterangepicker/issues/815#issuecomment-493323964


got*_*nix 6

autoUpdateInput: false

function (chosen_date) {
    $('.form-datetime').val(chosen_date.format('YYYY-MM-DD'));
}
Run Code Online (Sandbox Code Playgroud)

  • 你的回答帮助了我,谢谢.但我认为应该做的事情有点模糊.我能够使用它,因为我对数据贴纸的工作方式有一些经验.也许添加更多细节将是一个好主意. (3认同)
  • 如果我设置了`autoUpdateInput:false`,那么当我选择日期时,它不会再次填充输入框。 (3认同)
  • 抱歉,这行得通,我的回调函数有问题。 (3认同)
  • 对于那些寻求通用解决方案的人,您也可以使用: $(this.element[0]).val(chosen_date.format('YYYY-MM-DD')); (2认同)
  • 它不好用。如果这样做,您首先无法选择当前/今天日期,因为 Daterangepicker 会将“startDate”与所选日期进行比较,并且由于它们相同,因此不会调用用户回调,并且由于 autoUpdateField = false 也不会更新字段。 (2认同)

ish*_*kci 5

输入最初为空

<input type="text" name="datefilter" value="" />

<script type="text/javascript">
$(function() {

  $('input[name="datefilter"]').daterangepicker({
      autoUpdateInput: false,
      locale: {
          cancelLabel: 'Clear'
      }
  });

  $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
      $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
  });

  $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
      $(this).val('');
  });

});
</script>
Run Code Online (Sandbox Code Playgroud)

要么

//daterangepickers
            //moment.locale('tr');
            moment.locale("@SessionHelper.CurrentLanguageTwoChar");

            $(".date-control").daterangepicker({
                singleDatePicker: true,
                showDropdowns: true,                
                //timePicker: true,
                //timePicker24Hour: true,
                //timePickerSeconds: true,
                minYear: parseInt(moment().subtract(10, 'years').format('YYYY'),10),
                maxYear: parseInt(moment().add(10, 'years').format('YYYY'), 10),
                autoUpdateInput: false,                
                singleClasses: "",
                locale: {
                    //format: 'DD.MM.YYYY HH:mm:ss'
                    //format: 'DD.MM.YYYY'
                }
            });

            $('.date-control').on('apply.daterangepicker', function (ev, picker) {
                $(this).val(picker.startDate.format('L'));
            });

            $('.date-control').on('cancel.daterangepicker', function (ev, picker) {
                $(this).val('');
            });
Run Code Online (Sandbox Code Playgroud)

http://www.daterangepicker.com/#example5

https://github.com/dangrossman/daterangepicker/issues/815


小智 5

要将日期范围选择器的默认值设置为空,

在你的函数内设置autoUpdateInputfalse

autoUpdateInput: false,
Run Code Online (Sandbox Code Playgroud)