2013-04-18 44 views
0

继承人我的情况:我有一个索引页,其上有2个单选按钮和结果的跨度区域。当点击一个单选按钮,跨度充满了有一个输入框,这样一个Ajax生成的页面:jQuery datepicker没有打开焦点

<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和用户界面。

回答

1

如果您以前已在#depositDate上调用过日期选择器,则不需要重新生成日期选择器。 (或payDate)

试试这个:

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

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

我尝试添加“秀”行,但现在我得到了jQuery文件“设置”的错误为空或不是一个对象。 – Juan

+0

我认为问题在于它在ajax调用和失败验证之间丢失了它,当它试图重新显示它时。 – Juan

+0

你还没有在payDate上打过.datepicker吗?在验证之前,如果点击它,你会得到一个日期选择器吗? –