首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Pickadate 'onSet‘

设置Pickadate 'onSet‘
EN

Stack Overflow用户
提问于 2015-11-03 08:10:35
回答 2查看 3.7K关注 0票数 4

我试图在两个inputs.When上设置pickadate在第一个输入上选择日期,如果第二个输入为空,我想在第二个输入中设置选择的日期。

首先,我试图在选择第一个输入后更新该值,但有些东西不起作用。

这两个输入的配置都很复杂,所以我想这样做:

代码语言:javascript
复制
$( '#event-begin-date,#event-end-date' ).pickadate({
  min: true,
  max: undefined,
    today: '<?php echo T_("Aujourd\'hui"); ?>',
  clear: '<?php echo T_("Effacer"); ?>',
  close: '<?php echo T_("Fermer"); ?>',
  format: '<?php echo T_("dd/mm/yyyy"); ?>',
  firstDay: <?php echo T_("1"); ?>,
  formatSubmit: '<?php echo T_("dd/mm/yyyy"); ?>'
});


$('#event-begin-date').pickadate({
  onSet: function(thingSet) {
    var picker = $input.pickadate('picker');
    picker.set('select', this.component.item.select.pick );
  }
});
EN

回答 2

Stack Overflow用户

发布于 2016-05-03 22:59:49

Amsul,这个插件的创建者,为这个例子做了一个代码示例:pickadate v3: “from” & “to” dates

这是在代码不可用的情况下的代码:

代码语言:javascript
复制
var from_$input = $('#input_from').pickadate(),
    from_picker = from_$input.pickadate('picker')

var to_$input = $('#input_to').pickadate(),
    to_picker = to_$input.pickadate('picker')


// Check if there’s a “from” or “to” date to start with.
if ( from_picker.get('value') ) {
  to_picker.set('min', from_picker.get('select'))
}
if ( to_picker.get('value') ) {
  from_picker.set('max', to_picker.get('select'))
}

// When something is selected, update the “from” and “to” limits.
from_picker.on('set', function(event) {
  if ( event.select ) {
    to_picker.set('min', from_picker.get('select'))    
  }
  else if ( 'clear' in event ) {
    to_picker.set('min', false)
  }
})
to_picker.on('set', function(event) {
  if ( event.select ) {
    from_picker.set('max', to_picker.get('select'))
  }
  else if ( 'clear' in event ) {
    from_picker.set('max', false)
  }
})
票数 1
EN

Stack Overflow用户

发布于 2018-06-08 22:18:11

对于建议的解决方案,请注意.pickadate()的双重声明:

代码语言:javascript
复制
var from_$input = $('#input_from').pickadate(),
    from_picker = from_$input.pickadate('picker');

第一行将在没有任何定制的情况下重新声明,这可能会导致您的代码中出现问题。

使用event并在输入中添加data-fromdata-to的一种更谨慎的方法是:当您打开模式时,event会检查from/to中是否有值,并动态设置最大/最小值

代码语言:javascript
复制
    var from = $(this).data('from'),
        to = $(this).data('to');

    $(this).attr('data-value', $(this).val()).pickadate({
        min: true,
        selectMonths: true,
        selectYears: 3,
        format: 'dd mmm yyyy',
        formatSubmit: 'yyyy-mm-dd',
        hiddenName: true,

        onOpen: function() {
            if(typeof from !== 'undefined' && $('#' + from)) {
                var value = ($('#' + from).val() === '' ? true : $('#' + from).pickadate('picker').get('select'));
                this.set('min', value);
            } else if(typeof to !== 'undefined' && $('#' + to)) {
                var value = ($('#' + to).val() === '' ? false : $('#' + to).pickadate('picker').get('select'));
                this.set('max', value);
            }
        }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33489307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档