2012-03-25 55 views
2

我有一个窗体上的文本框,我创建这样一个datepicker:jQuery的日期选择器只显示一次

$("#txtBirthDate").datepicker({ 
        changeMonth: true, 
        changeYear: true, 
        yearRange: '1920:2999', 
        maxDate: '+0d', 
        dateFormat: 'dd-mm-yy' 
     }); 

这工作得很好,但什么happends是:

我按下文本框时, datepicker很好地显示,选择一个日期。但是如果我想选择另一个日期,我首先需要单击另一个字段,然后再单击生日日期字段。当我第二次按生日日期字段时,不先点击另一个字段,日期选择器不会显示..

我在这里错过了什么?

HTML代码:

<label>Birthdate</label> 
<input type="text" name="txtBirthDate" id="txtBirthDate" class="input" readonly='true' value="<?echo $_POST["txtBirthDate"]; ?>" /> 
+0

你能发布html代码吗? – riso 2012-03-25 13:42:48

+0

好吧我已经添加了HTML代码... – CyberK 2012-03-25 13:46:19

+0

我试过你的代码,它的工作,我用$(function(){})包装你的JS代码;你有吗?也许旧版本的jQuery?因为对我来说,它正在努力和... – riso 2012-03-25 14:09:20

回答

0

它与我发生一次只需按照文章,看看有什么不同,但我认为你错过:

showButtonPanel: true, 

在你的代码.Thanks

+0

不,相同的行为... – CyberK 2012-03-25 13:51:59

1

好的问题是焦点。选择日期后,该领域没有失去焦点。通过以下方式解决:

$("#txtBirthDate").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    yearRange: '1920:2999', 
    showButtonPanel: true, 
    maxDate: '+0d', 
    dateFormat: 'dd-mm-yy', 
    onClose: function(dateText, inst) { 
     setTimeout(function(){ 
      $("#txtBirthDate").blur(); 
     }, 200); 
    } 
}); 

谢谢你试图解决我的问题!

+0

如果它是一个,你应该将它标记为答案 – Shenaniganz 2012-09-06 17:06:04

0

很简单的答案,对我的工作是要加入这一行初始化您的日期选择器的元素

$('#ui-datepicker-div').remove(); 

之前。