继承我的场景:我有一个索引页面,上面有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的新手。
答案 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;
}