我不确定这是一个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() );
});
答案 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'});
它会起作用