Я настроил DatePicker для активации следующим образом
$(function () {
$(".editable_datepicker").click(function (event) {
$(this).editable('ajax_save.php',{
id : 'id',
type : 'datepicker',
style : 'margin:0px;width:80%;display:inline',
onblur : 'submit',
tooltip : ''
});
});
});
Я использую этот плагин
source: https://github.com/qertoip/jeditable-datepicker/blob/master/src/jquery.jeditable.datepicker.js
jQuery.expr[':'].focus = function( elem ) {
return elem === document.activeElement && ( elem.type || elem.href );
};
$.editable.addInputType( 'datepicker', {
element: function( settings, original ) {
var form = $( this ),
input = $( '<input />' );
input.attr( 'autocomplete','off' );
form.append( input );
settings.onblur = 'nothing';
return input;
},
plugin: function( settings, original ) {
var form = this, input = form.find( "input" );
settings.onblur = 'nothing';
input.datepicker( {
dateFormat:'yy-mm-dd',
showOn: "button",
buttonImage: "img/calendar_icon.gif",
buttonImageOnly: true,
onSelect: function() {
form.submit();
},
onClose: function() {
setTimeout( function() {
if ( !input.is( ':focus' ) ) {
original.reset( form );
} else {
form.submit();
}
}, 150 );
}
} );
}
} );
Этот плагин успешно работаетдо тех пор, пока я не добавлю следующие параметры в этот плагин
showOn: "button",
buttonImage: "img/calendar_icon.gif",
buttonImageOnly: true,
И я бы хотел добиться этого (подробное объяснение ниже)
- двойной щелчок по полю,загрузить тип ввода datepicker
- изменить данные, либо отредактировав их, либо выбрав новую дату из datepicker
- отправить данные, выбрав дату из календаря
- , если пользователь активировалредактируемый плагин, onblur: отмена не работает, пока я не открою календарь (я бы хотел отменить редактирование, если пользователи щелкают где-то еще)
Но я застрял.Можете ли вы помочь мне?
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ
Действия по воспроизведению проблемы
- получение jquery, jquery-ui, jeditable и кода подключаемого модуляили из github -добавьте цитируемые скрипты в соответствующие файлы -пишите пример страницы следующим образом
<input type='editable_datepicker' value='2011-11-17'>
* при нажатии на нее, она должна открыть текстовое поле и красивый значок календаря
, еслиВы нажимаете на значок, появляется календарь
, вы можете либо отправить дату и отправить данные, либо щелкнуть куда-нибудь еще (потерять фокус) и не отправлять данные
проблемаздесь ...
если вы активируете поле (сделаете его редактируемым), вы не сможете заставить его исчезнуть (потерять фокус), если не активируете календарь
Большое спасибо.