【问题标题】:Bootstrap 3 Datetimepicker fires on the second clickBootstrap 3 Datetimepicker 在第二次点击时触发
【发布时间】:2016-11-17 08:47:14
【问题描述】:

我正在使用Bootstrap 3 Datetimepicker,我的问题是它不会触发,只有在第二次点击之后。 datepicker 组是在运行时创建的。

这是我的代码(Drupal 7):

custom.module file

$values = isset($form_state['multistep_values']['second_step']) ? $form_state['multistep_values']['second_step'] : array();

$form['second_step']['departure_date'] = array(
    '#theme_wrappers' => array(), // to temove drupal default wrapper
    '#type' => 'textfield',
    '#default_value' => isset($values['departure_date']) ? $values['departure_date'] : NULL,
    '#attributes' => array(
        'class' => array('form-control dtpicker'),
        'readonly' => true
    ),
    '#prefix' => '<div class="col-sm-8"><div class="form-group"><div class="input-group date" id="datetimepicker1">',
    '#suffix' => '<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></div>',

);

generated output

<div class="col-sm-8"><div class="form-group"><div class="input-group date" id="datetimepicker1"><input class="form-control dtpicker form-text" readonly="1" id="edit-departure-date" name="departure_date" value="" size="60" maxlength="128" type="text"><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></div>

custom.js file

(function($) {
Drupal.behaviors.custom = Drupal.behaviors.custom || {};

Drupal.behaviors.custom.attach = function(context) {
    Drupal.custom.datetimepicker(context);
};

Drupal.custom = Drupal.custom || {};

/*
 * Datetimepicker behavior
 */
Drupal.custom.datetimepicker = function(context) {
    $(document).on('click', '#datetimepicker1', function() {
        $(this).datetimepicker({
            format: 'Y-MM-D HH:mm',
            allowInputToggle: true,
            ignoreReadonly: true,
            showClear: true,
            showClose: true,
            showTodayButton: true
        });
    });
  };
}(jQuery));

有什么想法吗?

我尝试先初始化,然后设置如下值:

$(this).datetimepicker();
$(this).datetimepicker({ ... });

或首先在焦点上初始化,然后在 onClick 设置选项。在他们两个仍然在第二次点击。

【问题讨论】:

    标签: php jquery drupal-7 bootstrap-datetimepicker


    【解决方案1】:

    我不知道drupal,但你可以试试这个

     <div class="form-group">
                        <div class='input-group date' id='datetimepicker1'>
                            <input type='text' class="form-control" />
                            <span class="input-group-addon">
                                <span class="glyphicon glyphicon-calendar"></span>
                            </span>
                        </div>
                    </div>
    

    如果html是上述格式,则无需在输入时绑定额外的点击事件

    Drupal.custom.datetimepicker = function(context) {
    $('#datetimepicker1').datetimepicker({
                format: 'Y-MM-D HH:mm',
                allowInputToggle: true,
                ignoreReadonly: true,
                showClear: true,
                showClose: true,
                showTodayButton: true
            });
    };
    

    【讨论】:

    • 它正在工作:D。奇怪的是,我一开始就这样使用它(在绑定点击事件之前)并且根本没有被触发。即使在 Drupal 缓存刷新之后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多