На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Как проверить пароль , этим чёртовым AJAX'ом?
    Делаю форму регистрации:
    ExpandedWrap disabled
              <tr>
                  <td align="right">Пароль:</td>
                  <td><asp:TextBox id="txtPasswd" runat="server" TextMode="Password" OnTextChanged="txtPasswd_TextChanged" AutoPostBack="true"/>*</td>
                  <td>
                  </td>
              </tr>
              <tr>
                  <td align="right">Подтверждение пароля:</td>
                  <td><asp:TextBox ID="txtPasswd2" runat="server" AutoPostBack="true" OnTextChanged="txtPasswd_TextChanged"
                          TextMode="Password">
                      </asp:TextBox>*</td>
                  <td>
                      <asp:Label ID="lblPasswordCheck" runat="server"></asp:Label>                
                  </td>
              </tr>

    Положил это дело внутрь UpdatePanel (использую http://asp.net/ajax), написал обработчик
    ExpandedWrap disabled
          protected void txtPasswd_TextChanged(object sender, EventArgs e)
          {
              if( txtPasswd.Text.Length != 0 && txtPasswd2.Text.Length!=0 )
              {
                  if( txtPasswd.Text == txtPasswd2.Text )
                  {
                      lblPasswordCheck.Text = "";
                  } else
                  {
                      lblPasswordCheck.Text = "Подтверждение не соответствует паролю";
                  }
              }
          }

    Но вот беда: поскольку режим TextBox'ов - TextMode="Password", то поля паролей очищаются...

    Получается, что для проверки введённых паролей без перезагрузки нужно использовать либо чистый JavaSript, либо CustomValidator (с использованием той же JavaScript'овой функции?

    Добавлено
    ... но если делать на чистом ява скрипт, надо знать ИД полей, ведь txtPasswd и txtPasswd2 имеют runat="server"... и их ИД после обработки сервером изменятся...

    Подскажите, плиз, что же делать? Как же быть?

    Добавлено
    Цитата Budda @
    ... но если делать на чистом ява скрипт, надо знать ИД полей, ведь txtPasswd и txtPasswd2 имеют runat="server"... и их ИД после обработки сервером изменятся...


    Когда-то Flex Ferrum говорил, что можно получать элемент с использованием функций аяксовых скриптов:
    ExpandedWrap disabled
      var txtP1 = $get('txtPasswd');

    буду пробовать...

    Добавлено
    Во.. как вариант, можно вытащить поля паролей из UpdatePanel... верно?

    Добавлено
    Но, всё таки, проверки, которые могут быть сделаны простыми средствами на клиенте, должны там и выполняться, верно? :)
      Цитата

      ... но если делать на чистом ява скрипт, надо знать ИД полей, ведь txtPasswd и txtPasswd2 имеют runat="server"... и их ИД после обработки сервером изменятся...

      попробуй найти через Page.ClientID
        Цитата Mr_Smith @
        попробуй найти через Page.ClientID

        Насколько я понимаю, пробовать ты предлагаешь на сервере. А на сервере и пробовать ничего не нужно: txtPasswd.Text - вот и попробовал.

        Вобщем, забил я на проверку пароля без перегрузки: набросал валидаторов - вроде неплохо выглядит, а остальное уже делаю в обычном PostBack'е.

        Вот, что получилось (если кому-то интересно):
        http://vfm-elita.com/register - если кто подскажет чё-нить интересное (идею повышения юзабилити или качества кода), буду благодарен.

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

        Добавлено
        кхм, кстати, вот только заметил, что первое обращение при проверке логина выдаёт ошибку... и проявляется только один раз, может кто-то сделает скриншот, чего оно там ругается?
        Сообщение отредактировано: Budda -
          Кстати, а зачем тебе вообще регистрация на аяксе потребовалась? И автопостбак на поле с паролем?
            Цитата Flex Ferrum @
            Кстати, а зачем тебе вообще регистрация на аяксе потребовалась? И автопостбак на поле с паролем?

            1. проверка, используется ли логин, под которым юзер пытается зарегистрироваться. Это я вынес на отдельную страничку, там где нет пароля... всё ок, кроме того
            Цитата Budda @
            , что первое обращение при проверке логина выдаёт ошибку... и проявляется только один раз, может кто-то сделает скриншот, чего оно там ругается?

            2. Хотелось бы также сразу проверять совпадает ли пароль введённый в поля "Пароль" и "Подтверждение пароля". По зрелом размышлении понял, что это всё-таки лучше делать на клиенте...
            3. А автопостбек на поле с паролем - ну а как же его ещё проверять? (если не опускаться до ручного написания JavaScript'ового кода)?
              делай скрипт на сервере динамически, потом регистрируй его и вызывай свою проверку. думаю никаких проблем тогда с идентификацией контролов не будет.
                Цитата Mr_Smith @
                делай скрипт на сервере динамически

                Ты понимаешь... влом мне ковыряться с ЖабаСкриптом... нелюблю я его... Но навреное придётся полюбить?

                Цитата Mr_Smith @
                потом регистрируй его и вызывай свою проверку. думаю никаких проблем тогда с идентификацией контролов не будет

                ты хочешь сказать, что содержимое скрипта будет адаптировано под идентификаторы клиентских элементов? Сомневаюсь, думаю, что всё же надо делать $get...
                  Цитата

                  ты хочешь сказать, что содержимое скрипта будет адаптировано под идентификаторы клиентских элементов?

                  Ага.

                  я сам Жабу не очень, но чтоб сделать валидацию на клиенте многих знаний думаю не надо. К тому же можно попросить знатоков из ветки явы посоветовать какой-нибудь скрипт. сам так делал, помогало ;-)
                  Сообщение отредактировано: Mr_Smith -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0284 ]   [ 16 queries used ]   [ Generated: 19.04.24, 12:41 GMT ]