Member 12324523 Ответов: 1

Отображение сообщения об ошибке Для от даты и до даты с использованием javascript


Below is my code in aspx page for from date, to date now I need to do the client side validation for from date and to date such that I need to display error message if from date given in textbox is greater than to date given in the text box also from date and to date should not be greater than todays date I tried so many JavaScript examples but none of them worked for me.

        <span>
            ProjectName:<asp:DropDownList ID="ddlProjectNameTA" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlProjectNameTA_SelectedIndexChanged"></asp:DropDownList> <%----%>
        </span>  
        <span>
            (OR) UserName:<asp:DropDownList ID="ddlUsers" runat="server"  AutoPostBack="true" OnSelectedIndexChanged="ddlUsers_SelectedIndexChanged"></asp:DropDownList>
        </span>  
        </div><br />
        <div style="padding-left:100px">
        <span>
            (OR) From Date<asp:TextBox ID="txtTAFromDate" Width="113px" runat="server" ReadOnly="true" ></asp:TextBox> <img src="calendar.png" />
        </span>  
        <span> 
            To Date<asp:TextBox ID="txtTAToDate" Width="113px" runat="server" ReadOnly="true" ></asp:TextBox> <img src="calendar.png" />
        <asp:Button ID="btnGet" runat="server" Text="GET" OnClick="btnGet_Click"/>
        </span>


Что я уже пробовал:

what i tried-

<asp:CompareValidator ID="CompareValidator1" ValidationGroup = "Date" ForeColor = "Red" runat="server" ControlToValidate = "txtStartDate" ControlToCompare = "txtEndDate" Operator = "LessThan" Type = "Date" ErrorMessage="Start date must be less than End date."></asp:CompareValidator> i tried compare validator by placing ValidationGroup = "Date"
но мне нужно сделать с javascript более того даже этот валидатор сравнения не работает в соответствии с моим требованием

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

Цитата:
но мне нужно сделать с javascript более того даже этот валидатор сравнения не работает в соответствии с моим требованием


попробовать это
<asp:Button ID="btnGet" runat="server" OnClientClick="return compareDate()"  Text="GET" OnClick="btnGet_Click" />



Скрипт
function compareDate() {
           var from = document.getElementById('<%= txtTAFromDate.ClientID %>').value;
           var to = document.getElementById('<%= txtTAFromDate.ClientID %>').value;
           // assuming the date is in dd/mm/yyyy format
           from = toDateObject(from);
           to = toDateObject(to);
           if (from > to)
           {
               alert('start date should be lesser than end date');
               return false;
           }
           return true;

       }
       function toDateObject(dateStr) {
           var parts = dateStr.split('/');
           var date = new Date(parts[2], (parts[1] - 1), parts[0]);
           return date;

       }


Member 12324523

но я не должен допускать, чтобы дата больше сегодняшней даты как от даты, так и до даты вместе с датой начала была меньше сегодняшней даты, и мой формат даты не ДД/ММ/гггг, а ММ / ДД/гггг

Karthik_Mahalingam

для ММ/ДД/гггг
функция toDateObject(dateStr) {
var parts = dateStr. split('/');
var date = новая дата(parts[2], (parts[0] - 1), parts[1]);
дата возврата;

}

Member 12324523

кроме того я не должен позволять дату больше чем сегодняшняя дата как для даты от даты так и для даты вместе с датой начала должна быть меньше чем дата окончания более того я не должен отображать как предупреждения я должен отображать как сообщения об ошибках

Karthik_Mahalingam

на сегодня используйте "новую дату()"
замените предупреждение селектором меток и примените сообщение..

Member 12324523

привет Картик не могли бы вы показать его отредактировав свой пост с полным кодом так как я новичок в этом деле

Karthik_Mahalingam

Привет Член,
я могу дать вам весь код, но когда вы узнаете?

Member 12324523

да но я нахожусь в стадии обучения более того я не мог достичь этого вот почему я спросил вас как это сделать

Karthik_Mahalingam

Хорошо я отправлю сообщение Завтра утром
А теперь я иду спать.

Member 12324523

не могли бы вы помочь мне сейчас потому что завтра утром он должен быть передан моему начальству к 8 часам

Karthik_Mahalingam

 function compareDate() {
            var from = document.getElementById('<%= txtTAFromDate.ClientID %>').value;
            var to = document.getElementById('<%= txtTAFromDate.ClientID %>').value; 
            from = toDateObject(from);
            to = toDateObject(to);
            var today = new Date();
            if (from > today || to > today) {
                alert('Date should be less than today');
                return false;
            }

            if (from > to) {
                alert('start date should be lesser than end date');
                return false;
            }
            return true;

        }

Member 12324523

рядом с частями var в функции toDateObject (dateStr) я получаю это [04,28,17 11:27]

в ближайшее дата в ВАР я получаю это как Нана при отладке

и наконец ближе к дате возвращения он возвращается как Нан
а после выполнения функции todateobject рядом

from = toDateObject(from); я получаю ЧТ 1 января 05: 30: 00 UTC+0530 1970 и рядом

to = toDateObject(to); я получаю NaN

Karthik_Mahalingam

обратитесь к этому Ссылка На Дату JavaScript[^]
и измените функцию getDateobj для разбора вашей строки.

Member 12324523

я в состоянии решить эту проблему, но сегодня я получаю Пн апр 17 11: 55:32 UTC+0530 2017, но мне нужно получить "04/28/17", похожий на from and to date, как я могу это сделать

Karthik_Mahalingam

var date;
date = new Date();
var mmddyy;
mmddyy = (date.getMonth() - 1) + "/" + date.getDay() + "/" + date.getFullYear();

Member 12324523

Привет я решил все проблемы единственная проблема которая осталась это я получаю оповещения после нажатия кнопки ОК это приводит меня на пустую страницу и на этой странице Я вижу дату от и до даты которые я дал таким образом 26.04.17
13:5804/02/17
13: 58 но после нажатия на предупреждение мне нужно остаться на этой странице только как я могу это сделать

Karthik_Mahalingam

после предупреждения добавьте "return false"