ユーザーはCalendar Extenderコントロールから日付を選択できるASP.Netフォームがあります。日付(FromDate & ToDate)の2つのフィールドがあります。JavascriptとASP.Netを使用した検証日
私はJavaScriptを使用して次のことを検証する:
- FROMDATEはいつもより少ない
- のToDateよりFROMDATE &のToDateは、今日の日付を下回ってはいけませんする必要があります。両方の条件に該当する場合、私は、週末を除く選択した期間内の日の合計数を計算し、それをユーザーに表示する分離コードからメソッドを呼び出すしたいと思います
(このメソッドが正常に動作します) 。
以下のコードでは、__doPostBackを使用して、前述の2つの条件が満たされたときにcodebehindメソッドを起動しました。 codebehindメソッドを起動しますが、javascript変数が正しくなくなります(compareDate変数は各関数呼び出しで常にインクリメントされます)&ポストバック)、すべての結果が不正確になります。以下は
* 私はJavascriptを使用して日付を検証するために使用する現在の方法であり、それは両方のテキストボックスのカレンダーエクステンダーコントロールからOnClientDateSelectionChangedイベントから発射されます
<script type="text/javascript">
var fromDate = new Date();
var toDate = new Date();
function checkDate(sender, args) {
if (sender.get_id() == 'CalendarExtenderFrom') {
fromDate = sender._selectedDate;
}
else if (sender.get_id() == 'CalendarExtenderTo') {
toDate = sender._selectedDate;
}
// Check if selected date is less than today's date
var todayDate = new Date();
var year = todayDate.getFullYear();
var month = todayDate.getMonth();
var day = todayDate.getDate();
var dateOnly = new Date(year, month, day);
if (sender._selectedDate < dateOnly) {
alert("You cannot select a day earlier than today!");
sender._textbox.set_Value("");
return;
}
// Check if FromDate > ToDate
if (document.getElementById('TextBoxDateOfLeave').value != "" && document.getElementById('TextBoxDateOfReturn').value != "") {
var compareDate = new Date(fromDate.getFullYear(), fromDate.getMonth(), (fromDate.getDate()) + 1, 00, 00, 00, 00);
if (toDate < compareDate) {
alert("(Return Date) should be greater than (Travel Date)");
sender._textbox.set_Value("");
return;
}
}
// If both conditions are met
window.__doPostBack('__Page', '');
}
</script>
を* ASP.Netコントロール:
を<asp:TextBox ID="TextBoxDateOfLeave" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderFrom" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfLeave" OnClientDateSelectionChanged="checkDate" />
<asp:TextBox ID="TextBoxDateOfReturn" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderTo" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfReturn" OnClientDateSelectionChanged="checkDate" />
私には方法があるかどうか教えてくださいこれを握る。
ありがとう、
:) –