我有文本框,我想在其中存储所选的日历日期。为此,我使用了ajax日历扩展器。并将目标控件属性设置为文本框ID。但是当我点击相同页面的按钮然后我丢失了选择日期(我的意思是我丢失了textvalue)但是我希望在点击按钮后选择日期。 我的代码是
<td>
<asp:TextBox ID="txtDate" runat="server" ReadOnly="true"></asp:TextBox>
</td>
<td>
<asp:ImageButton ID="imgCalender" runat="server" ImageUrl="~/Images/Calendar.png" ToolTip="Select a Date" />
<asp:CalendarExtender ID="calShow" runat="server" PopupButtonID="imgCalender" PopupPosition="BottomLeft" TargetControlID="txtDate" OnClientDateSelectionChanged="CheckForPastDate"></asp:CalendarExtender>
</td>
我也希望当用户尝试选择大于当前日期+ 20天的日期时,文本框应为空。意味着用户必须再次选择合适的日期。
var selectedDate = new Date();
selectedDate = sender._selectedDate;
var todayDate = new Date();
if (selectedDate.getDateOnly() <= todayDate.getDateOnly())
{
alert('Date Cannot be in the past or current date');
sender._textbox.set_Value(null);
}
else if(selectedDate.getDateOnly() > todayDate.getDateOnly())
{
// why is this here?
}
答案 0 :(得分:0)
在js方法中只需执行类似
的操作var today = new Date();
var twentyDays = new Date();
twentyDays.setDate(today.getDate()+20);
if (selectedDate.getDateOnly() <= todayDate.getDateOnly())
{
alert('Date Cannot be in the past or current date');
sender._textbox.set_Value(null);
}
else if(selectedDate.getDateOnly() > twentyDays.getDateOnly())
{
alert('this is more than 20 days');
sender._textbox.set_Value(null);
return;
}
更新 02/12/2013
我不确定getDateOnly()方法是什么或者做什么,这似乎导致了我的问题。
下面的脚本是我放在一起测试场景和工作的。只需调整daysModifier
变量即可进行测试。
var daysModifier = 23;
var selectedDate = new Date();
selectedDate.setDate(selectedDate.getDate() + daysModifier);
var today = new Date();
var twentyDays = new Date();
twentyDays.setDate(today.getDate()+20);
document.write(today);
document.write("<br />");
document.write(selectedDate);
document.write("<br />");
document.write(twentyDays);
if (selectedDate <= today)
{
alert('Date cannot be in the past or current date');
}
else if(selectedDate > twentyDays)
{
alert('this is more than 20 days');
}