Bootstrap 3 Datetimepicker 在第二次点击时触发
Bootstrap 3 Datetimepicker fires on the second click
我正在使用 Bootstrap 3 Datetimepicker,我的问题是它不会触发,只有在第二次点击后才会触发。日期选择器组是在 运行.
上创建的
这是我的代码(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 上设置选项。在他们两个仍然在第二次点击。
我不知道 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
});
};
我正在使用 Bootstrap 3 Datetimepicker,我的问题是它不会触发,只有在第二次点击后才会触发。日期选择器组是在 运行.
上创建的这是我的代码(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 上设置选项。在他们两个仍然在第二次点击。
我不知道 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
});
};