在jquery mobile datepicker中消失日期(非常奇怪)

时间:2012-09-21 23:39:40

标签: jquery-mobile jquery-ui-datepicker

我不确定这是一个bug还是什么,但是我对jQuery mobile的datepicker有一个非常奇怪的行为。

单击禁用日期时,启用的日期会消失! WTF?

请查看我的jsFiddle以获取一个非常简单的示例:http://jsfiddle.net/X5qp8/

我在jquery推荐移动黑客之后对此进行建模:http://jquerymobile.com/demos/1.0a4.1/experiments/ui-datepicker/

我也将它渲染成div,因为我需要一个持久的日历。也许这些事情不合适......

我还发现该漏洞位于其移动扩展的第33行,但目前还不清楚他们试图在那里做什么:

$( ".ui-datepicker-calendar .ui-btn", dp ).each(function(){
            var el = $(this);
            // remove extra button markup - necessary for date value to be interpreted correctly
            el.html( el.find( ".ui-btn-text" ).text() ); 
        });

2 个答案:

答案 0 :(得分:1)

第33行正在剥离额外的标记,以便datepicker插件可以解析插件各种事件的日期。我最近找到了一个适合我的解决方案,但我无法让你的jsFiddle工作。我已经评论了一些针对移动样式所做的额外标记。看看我的updateDatepicker函数版本,希望它会有所帮助。

function updateDatepicker(){

     // $( ".ui-datepicker-header", dp ).addClass("ui-body-c ui-corner-top").removeClass("ui-corner-all");
     $( ".ui-datepicker-prev, .ui-datepicker-next", dp ).attr("href", "#");
     $( ".ui-datepicker-prev", dp ).buttonMarkup({iconpos: "notext", icon: "arrow-l", shadow: true, corners: true});
     $( ".ui-datepicker-next", dp ).buttonMarkup({iconpos: "notext", icon: "arrow-r", shadow: true, corners: true});
     // $( ".ui-datepicker-calendar th", dp ).addClass("ui-bar-c");
     // $( ".ui-datepicker-calendar td", dp ).addClass("ui-body-c");
     // $( ".ui-datepicker-calendar a", dp ).buttonMarkup({corners: false, shadow: false}); 
     $( ".ui-datepicker-calendar a.ui-state-active", dp ).addClass("ui-btn-active"); // selected date
     $( ".ui-datepicker-calendar a.ui-state-highlight", dp ).addClass("ui-btn-up-e"); // today"s date
     $( ".ui-datepicker-calendar .ui-btn", dp ).each(function(){
          var el = $(this);
          // remove extra button markup - necessary for date value to be interpreted correctly
         el.html( el.find( ".ui-btn-text" ).text() );
     });
};

答案 1 :(得分:0)

删除<div id="datepicker"></div>并替换 $("#datepicker").datepicker({minDate : '9/20/2012'});

$("#date").datepicker({minDate : '9/20/2012'});

它会起作用