Проверка формы - PullRequest
       20

Проверка формы

1 голос
/ 15 августа 2011

Я хочу проверить свою регистрационную форму, но у меня есть значения по умолчанию для каждого ввода текста. Перепробовал все возможные способы с плагином jquery validate. Трудно понять, как его использовать (я новичок в JS). То, что я хочу сделать, это игнорировать значения по умолчанию и проверять форму. Моя форма выглядит так

<from id="reg">
<input class="part1 default" type="text" name="fname" id="fname" value="Adınız (First Name)"/>
<input  class="part1 default"  type="text" name="mname"  value="Atanızın adı (Middle name)"/>
</form>

Я использую этот код для этой формы

var defaultValues = {
    'fname': 'Adınız',
    'mname': 'Atanızın adı',
    'lname': 'Soyadınız',
    'phone': 'Telefon',
    'email': 'Email',
    'pwd':'Şifrə',
    'region':'Rayon',
    'school':'Məktəb',
    'login':'Istifadəçi adı',
    'class':'Sinif',
    'subject':'Fənnin adını daxil edin',
    'dob': 'Date of Birth'
};
$('input').live('focus', function() {
    var el = $(this);
    if (el.hasClass('default')) {
        el.removeClass('default').val('');
    }
    if (el.attr('id') === 'dob') {
        $(this).mask('99.99.9999', {placeholder:' '});
    }
});

$('input').live('blur', function() {
    var el = $(this);
    var name = el.attr('name');

    // Really we only want to do anything if the field is *empty*
    if (el.val().match(/^[\s\.]*$/)) {

        // To get our default style back, we'll re-add the classname
        el.addClass('default');

        // Unmask the 'dob' field
        if (name == 'dob') {
            el.unmask();
        }

        // And finally repopulate the field with its default value
        el.val(defaultValues[name]);
    }
});

/*validation*/
 $('#reg').submit(function (event) 
    {
        if ($('#fname').val() == defaultValues['Adınız'] || $.trim($('#pwd').val()) == '')
        {
            alert('Please enter the name!');
            return false;
        }
        else
        {
            if ($('#fname').val().length < 2)
            {
                alert('The name must be >2 letters!');
                return false;
            }
        }
    });

Последняя часть, которую вы видите, это проверка. У меня есть вопросы по этому поводу

  1. Допустим, мы написали «если» для всех возможных случаев. Что делать, если все в порядке и мы хотим продолжить процесс отправки? Нужно ли мне писать новый, если для этого и завершите это, если "верните истину?"
  2. Я использовал этот кусок кода, но он всегда дает мне ту же ошибку сообщение "Пожалуйста, введите пароль!" даже если все поля ввода заполнены. Как мы можем изменить этот код, чтобы предупредить массив ошибок? например, если мой пароль неправильного типа и поле имени не заполнено, скрипт будет показать 2 ошибки одновременно. Я тоже думал о логике: например, каждый время, когда какой-то случай истинен, тогда он выдвигает ошибку сообщение и когда он заканчивает проверку всех случаев, показывает ошибку массив. Но не могу понять это. Как проверить поле электронной почты и поле даты рождения (выглядит как «19.16.2010»)?

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Вместо того, чтобы поместить значение по умолчанию в атрибут «value», почему бы не установить его как «placeholder»

<input type="text" name="fname" id="fname" placeholder="Adınız (First Name)"/>

Тогда вы можете просто сделать обычную проверку ...

1 голос
/ 15 августа 2011

Что если все в порядке и мы хотим продолжить процесс отправки?Нужно ли мне писать новый if для этого и завершить его, если "return true?"

Да.return true;

Я использовал этот фрагмент кода, но он всегда выдает мне одно и то же сообщение об ошибке «Пожалуйста, введите пароль!»даже если все поля ввода заполнены.Как мы можем изменить этот код, чтобы предупредить массив ошибок?например, если мой пароль неправильного типа и поле имени не заполнено, скрипт покажет 2 ошибки одновременно.

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

Я тоже думал о логике: например, каждый раз, когда какой-либо случай истинен, он подталкивает к массиву сообщение об ошибке, а когда он заканчивает проверку всех случаев, показывает массив ошибок.,Но не могу понять это.Как проверить поле электронной почты и поле даты рождения (выглядит как «19.16.2010»)?

Вам необходимо предоставить процедуру проверки для каждого типа данных.Затем вы можете вызывать соответствующую функцию для каждого поля, содержащего этот тип данных:

form element -> data-type -> validation function

Может быть, вам просто нужно использовать плагин проверки jquery, чтобы избавиться от неприятностей?Я думаю, что вы не первый, кто столкнулся с этой проблемой, так что, вероятно, стоит разобраться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...