jQuery datepicker没有开放焦点

时间:2013-04-18 17:41:06

标签: datepicker jquery-ui-datepicker uidatepicker

继承我的场景:我有一个索引页面,上面有2个单选按钮和一个结果区域。当单击其中一个单选按钮时,跨度填满了ajax生成的页面,其中包含一个输入框:

<input size='25' class='datepicker' value='Click to enter deposit date' READONLY type='text'    id='depositDate' name='depositDate'> 

在此页面的底部有一个“添加记录”按钮,可以触发javascript验证。验证是这样的:

var inpDepDate  = $.trim($("#depositDate").val());
if(inpPayDate=='Click to enter pay date') // Validate pay date
{
    alert('Invalid pay date; re-enter');

    document.getElementById('payDate').focus();
    document.getElementById('payDate').select();

    return false;
}

另外在我的javascript文件中是:

$(function(){
    $( "#depositDate" ).live('focus', function() {
        $(this).datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: "+1D",
            showOtherMonths: true,
            selectOtherMonths: true}).focus();
    });
});

问题是当验证失败时,文本会突出显示并被选中,但它不会自动打开。

我尝试了很多东西,实际上这个网站上有很多东西,没有运气。它似乎永远不会认出现场活动。但是,如果我在验证失败后点击文本框(并突出显示文本),日历就会正常打开。我是jQuery和ui的新手。

1 个答案:

答案 0 :(得分:1)

如果您过去曾在#depositDate上调过日期选择器,则无需重新验证日期选择器。 (或在payDate上)

试试这个:

if(inpPayDate=='Click to enter pay date') // Validate pay date
{
    alert('Invalid pay date; re-enter');

    $("#payDate").datepicker("show");
    return false;
}