![](/img/trans.png)
[英]Weird touch/click behaviour with jquery ui datepicker on iOS
[英]Weird Datepicker behaviour, related to blur
我完全被Datepicker困住了。 如果Datepicker处于活动状态,Blur将隐藏日历,但是焦点仍然停留在输入中,因此我无法通过单击再次输入来再次触发datepicker。 页面上只有2个日期选择器可以正常工作,所有其他日期选择器都以此方式损坏。
这就是我设置日期选择器的方式。 第一对工作正常,第二对坏了。
dates.intervalDatepickersSet( $( ".head-from, .head-to" ) );
dates.intervalDatepickersSet( $( ".residence-from, .residence-to" ) );
这是dates.intervalDatepickersSet:
intervalDatepickersSet: function( el ) {
var interval, i,
pair = [];
if ( el.length > 2 ) {
var elementsContainer = el.toArray();
for ( i in elementsContainer ) {
if ( elementsContainer.hasOwnProperty( i ) ) {
pair[0] = elementsContainer.shift();
pair[1] = elementsContainer.shift();
// If we are on the Update order page, we could have few elements with same classes.
// Set datpickers for each pair of that incoming bundle of elements.
dates.intervalDatepickersSet( $( pair ) );
}
}
}
interval = el.datepicker({
onSelect: function( selectedDate ) {
var prefix = dates.prefixFromTo( $( this ) ),
option = ($(this).hasClass(prefix + '-from')) ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
selectedDate, instance.settings);
interval.not( this ).datepicker( "option", option, date );
/* calculations code */
});
}
这有什么问题?
UPD第一对工作要素:
<input id="id03" class="disable text from head-from" default="__.__._____" type="text" name="Order[z_start_date]" id="z_start_date" value="<?php if($this->getAction()->getId()=="create") echo '__.__._____'; else echo Yii::app()->dateFormatter->format('dd.MM.yyyy', $model->z_start_date);?>" />
<input id="id04" class="disable text to head-to" default="__.__._____" type="text" name="Order[z_end_date]" id="z_end_date" value="<?php if($this->getAction()->getId()=="create") echo '__.__._____'; else echo Yii::app()->dateFormatter->format('dd.MM.yyyy', $model->z_end_date);?>" />
第二对破线:
<input class="text dateOfSettlement1 residence-from" type="text" name="<?php echo $model->getAttrName($block, 'in'); ?>" value="Дата начала" default="Дата начала" />
<input class="text dateOfEviction1 residence-to" type="text" name="<?php echo $model->getAttrName($block, 'out'); ?>" value="Окончание" default="Окончание" />
UPD2
仅当我单击另一个输入或拖动某个元素(触发另一个操作)时,我才能再次触发datepicker。 该行为的原因可能是什么?
因此,我只能在“ focusout”事件之后再次触发datepicker,而不能在“ blur”事件之后触发。 虽然,日历模糊了。
检出showOn
选项。 docs
您可能希望将其设置为“ both”和“ both”。 默认情况下,它设置为“焦点”,如果输入元素仍然具有焦点,则不会再次触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.