Warning: Constant USER_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 85

Warning: Constant PASS_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 86

Warning: Constant AUTH_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 87

Warning: Constant SECURE_AUTH_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 88

Warning: Constant LOGGED_IN_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 89

Warning: Constant TEST_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 90
Проверка полей формы на стороне клиента в приложениях WebForms « Марк и Марта.Ру. Записки отца-программиста




Проверка полей формы на стороне клиента в приложениях WebForms


Warning: Undefined variable $thumbnail in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 44

Warning: Attempt to read property "ID" on null in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 44

Warning: Undefined variable $thumbnail in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 45

Warning: Attempt to read property "post_title" on null in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 45

Как и в обычных формах, в приложениях WebForms проверку можно и нужно делать на стороне не только сервера, но и клиента. Для добавления проверки на ASP странице используется элемент управления (контрол) <asp:CustomValidator></asp:CustomValidator>, а для указания функции проверки на стороне клиента (проверка с помощью Javascript) нужно указать значение параметра контрола ClientValidationFunction.

Пример синтаксиса контрола для проверки:

<asp:CustomValidator id="cuv1" runat="server" 
ControlToValidate="toMonthCtrl" OnServerValidate="cuv1_ServerValidate"
ClientValidationFunction="TextBoxDAddress1Client"
ErrorMessage="Конец периода должен быть больше начала"></asp:CustomValidator>

 

Параметры контрола:

  •  ControlToValidate – идентификатор контрола, который подлежит проверке;
  • OnServerValidate – метод, в котором реализована проверка;
  • ClientValidationFunction – название Javascript функции, в которой реализована проверка;
  • ErrorMessage – текст сообщения об ошибке.

 

В рассматриваемом примере ниже на странице размещены 4 выпадающих списка для выбора периода – месяц год начала и месяц год завершения. Значения списков заполняются в codebehind. Требуется реализовать функцию, которая будет проверять, что дата начала запроса меньше даты завершения.

   <asp:DropDownList ID="sinceMonthCtrl" runat="server"></asp:DropDownList>
   <asp:DropDownList ID="sinceYearCtrl" runat="server"></asp:DropDownList>
   <br />
   <asp:DropDownList ID="toMonthCtrl" runat="server"></asp:DropDownList>
   <asp:DropDownList ID="toYearCtrl" runat="server"></asp:DropDownList>

В целом, функция проверки – обычная функция Javascript, получающая на вход параметры sender и args. Если функция в результате функции args.IsValid равен true, то все ок, если false, то ошибка.

В приложениях WebForms у контролов идентификаторы имеют уникальные GUID'ы, благодаря чему в Javascript ими не просто управлять. Но с помощью синтаксиса ASP это можно сделать. Минус такого решения – проверку нельзя вынести в отдельный JS файл.

        function TextBoxDAddress1Client(sender, args) {
            var sinceMonth = document.getElementById('<%=sinceMonthCtrl.ClientID%>').selectedIndex;
            var toMonth = document.getElementById('<%=toMonthCtrl.ClientID%>').selectedIndex;

            var sinceYear = document.getElementById('<%=sinceYearCtrl.ClientID%>').selectedIndex;
            var toYear = document.getElementById('<%=toYearCtrl.ClientID%>').selectedIndex;
            args.IsValid = true;

            if (sinceYear == toYear) {
                if (sinceMonth > toMonth) args.IsValid = false;
            }
        }

 

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment





Срок проверки reCAPTCHA истек. Перезагрузите страницу.



MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика