Jquery日期选择器don';删除输入属性后无法工作

Jquery日期选择器don';删除输入属性后无法工作,jquery,jquery-ui,date,datepicker,twitter-bootstrap-3,Jquery,Jquery Ui,Date,Datepicker,Twitter Bootstrap 3,这是我的,我有一个带有日期选择器的输入文本;当此输入为只读时,我不显示弹出日历。我单击按钮删除只读属性,但弹出日历不再显示。怎么了 HTML: JS: $('.datapick').datepicker({ 日期格式:“日/月/年”, 显示前:功能(输入、安装){ if($(输入).prop(“只读”)){ inst.dpDiv=$(''); } }}); $('.btneditlog')。单击(函数(e){ $('data'u contatto')。删除文本(“只读”); });

这是我的,我有一个带有日期选择器的输入文本;当此输入为只读时,我不显示弹出日历。我单击按钮删除只读属性,但弹出日历不再显示。怎么了

HTML:


JS:

$('.datapick').datepicker({
日期格式:“日/月/年”,
显示前:功能(输入、安装){
if($(输入).prop(“只读”)){
inst.dpDiv=$('');
}    
}});
$('.btneditlog')。单击(函数(e){
$('data'u contatto')。删除文本(“只读”);
});

谢天谢地,这是先进的。Marco.

如果我理解正确,如果输入为infact readonly,则返回false是一个简单的修复方法:

$('.datapick' ).datepicker({ 
    dateFormat: "dd/mm/yy",
    beforeShow: function (input, inst) {
     if ($(input).prop("readonly")) {
            return false;
          }    
}});
更新的小提琴

问题在于

inst.dpDiv = $('<div style="display: none;"></div>');

我认为问题可能是您正在删除属性,但没有实际重置属性,这正是您的beforeShow所关注的。在按钮上单击“尝试”:

$('.btneditlog').click(function(e){
    $('#data_contratto').prop("readonly", false); 
});

单击按钮时是否要显示datepcicker?虽然看起来像是在重写函数中的inst.dpDiv,但在销毁后调用它时,它将作为重新写入的空div加载。
inst.dpDiv = $('<div style="display: none;"></div>');
$('.btneditlog').click(function(e){
    $('#data_contratto').removeAttr("readonly");
    $('.datapick').datepicker('destroy').datepicker()
});
$('.btneditlog').click(function(e){
    $('#data_contratto').prop("readonly", false); 
});