Проверка логина в форме регистрации

new_russian_man

Столкнулся с проблемой при проверки поля логина в форме регистрации. Не показывает ошибок. Вообще ничего. Проверка сделана на JQuery. Файл хранится в формате пхп *.php

Сам код. Может, кто подскажет в чем у меня ошибка?

<form>
<table width="546" border="1">
  <tbody><tr>
    <th width="221" scope="col"><div align="left">Введите логин</div></th>
    <th width="309" scope="col"><div align="left">
      

    </div></th>
  </tr>
  <tr>
    <td>Введите e-maile</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td>Выберите пол</td>
    <td>
      <select name="select" id="select">
      </select>
    </td>
  </tr>
  <tr>
    <td>Введите город проживания</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td>Введите пароль</td>
    <td>
      
   </td>
  </tr>
  <tr>
    <td>Повторите пароль</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
  </tr>
  <tr>
    <td colspan="2">
      <div align="center">
        
        
        </div>
    </td>
  </tr>
</tbody></table>
</form>
2 ответа

new_russian_man

В коде из вопроса целый ряд ошибок. Во-первых нет элемента с id="login" как такового, следовательно две ошибки уже (строчки с $("#login")). Во-вторых нет ни одного элемента с классом login, следовательно ещё много ошибок - все строчки с $(".login"). В-третьих (насчёт этого 100% не уверен, но вроде так не должно быть), всё должно быть заключено в функцию ready, т.е. так:

$(document).ready(function() {
    $("#textfield").*****(function() {
        //
    });
});

Вот такой код работает нормально:

<form>
<table width="546" border="1">
  <tbody><tr>
    <th width="221" scope="col"><div align="left">Введите логин</div></th>
    <th width="309" scope="col"><div align="left">
      

    </div></th>
  </tr>
  <tr>
    <td>Введите e-maile</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td>Выберите пол</td>
    <td>
      <select name="select" id="select">
      </select>
    </td>
  </tr>
  <tr>
    <td>Введите город проживания</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td>Введите пароль</td>
    <td>
      
   </td>
  </tr>
  <tr>
    <td>Повторите пароль</td>
    <td>
      
    </td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
  </tr>
  <tr>
    <td colspan="2">
      <div align="center">
        
        
        </div>
    </td>
  </tr>
</tbody></table>
</form>


new_russian_man

Функция html() предполагает, что Вы передадите ей новый html-элемент, например, чтобы создать абзац с текстом ошибки, надо сделать следующее:

$('.login').html('<p>Вы вводите неправильный пароль</p>')

если же Вы хотели просто добавить новое содержимое, то тогда применяется функция text() -

$('.login').text('Вы ввели неправильный пароль')

Вообще в плагине Validation есть возможность данной проверки. Там имеется rangelength, которая проверяет соответствует ли пароль длине от-до. Если Вы не хотите им пользоваться, то возьмите за основу принцип работы этого плагина. Если найдена ошибка, то плагин добавляет рядом с ошибочным полем <label> с описанием ошибки и классом .error, чтобы управлять стилями. Так же сделайте и Вы: нашли ошибку - с помощью after(), before(), insertAfter(), insertBefore() добавляйте элемент с описанием ошибки и определённым классом для однозначного определения ошибки от остального текста.

licensed under cc by-sa 3.0 with attribution.